---
Fuzzer filename: '/src/selinux/libsepol/fuzz/binpolicy-fuzzer.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    write_binary_policy
      functionSourceFile: '/src/selinux/libsepol/fuzz/binpolicy-fuzzer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - policy_file_init
        - policydb_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:22,2'
          Dst:             policy_file_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:25,9'
          Dst:             policydb_write
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/selinux/libsepol/fuzz/binpolicy-fuzzer.c'
      linkageType:     externalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          244
      EdgeCount:       59
      CyclomaticComplexity: 14
      functionsReached:
        - abort
        - check_assertions
        - expand_module
        - fclose
        - fopen64
        - hierarchy_check_constraints
        - link_modules
        - policy_file_init
        - policydb_destroy
        - policydb_init
        - policydb_load_isids
        - policydb_optimize
        - policydb_read
        - policydb_validate
        - sepol_debug
        - sepol_kernel_policydb_to_cil
        - sepol_kernel_policydb_to_conf
        - sepol_sidtab_destroy
        - write_binary_policy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:35,2'
          Dst:             sepol_debug
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:37,2'
          Dst:             policy_file_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:42,6'
          Dst:             policydb_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:45,6'
          Dst:             policydb_read
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:48,6'
          Dst:             policydb_load_isids
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:52,10'
          Dst:             policydb_optimize
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:54,7'
          Dst:             policydb_validate
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:55,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:59,10'
          Dst:             check_assertions
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:61,9'
          Dst:             hierarchy_check_constraints
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:63,12'
          Dst:             fopen64
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:67,6'
          Dst:             write_binary_policy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:68,3'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:71,7'
          Dst:             sepol_kernel_policydb_to_conf
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:72,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:74,7'
          Dst:             sepol_kernel_policydb_to_cil
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:75,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:78,7'
          Dst:             link_modules
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:81,7'
          Dst:             policydb_init
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:84,7'
          Dst:             expand_module
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:87,10'
          Dst:             check_assertions
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:88,10'
          Dst:             hierarchy_check_constraints
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:90,7'
          Dst:             write_binary_policy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:91,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:93,7'
          Dst:             sepol_kernel_policydb_to_conf
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:94,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:96,7'
          Dst:             sepol_kernel_policydb_to_cil
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:97,4'
          Dst:             abort
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:103,3'
          Dst:             fclose
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:105,2'
          Dst:             policydb_destroy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:106,2'
          Dst:             policydb_destroy
        - Src:             'libsepol/fuzz/binpolicy-fuzzer.c:107,2'
          Dst:             sepol_sidtab_destroy
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fopen64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policy_name
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extended_permissions_violated
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          288
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    report_failure
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          326
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - policy_name
        - sepol_av_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:48,18'
          Dst:             sepol_av_to_string
        - Src:             'assertion.c:51,3'
          Dst:             policy_name
    - functionName:    report_assertion_extended_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         157
      ICount:          1043
      EdgeCount:       209
      CyclomaticComplexity: 54
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
        - check_extended_permissions
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - extended_permissions_violated
        - match_any_class_permissions
        - match_node_key
        - policy_name
        - sepol_av_to_string
        - sepol_extended_perms_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:183,2'
          Dst:             ebitmap_start
        - Src:             'assertion.c:183,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:185,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:185,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:187,16'
          Dst:             avtab_search_node
        - Src:             'assertion.c:197,9'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:200,6'
          Dst:             extended_permissions_violated
        - Src:             'assertion.c:201,19'
          Dst:             sepol_extended_perms_to_string
        - Src:             'assertion.c:203,6'
          Dst:             policy_name
        - Src:             'assertion.c:189,16'
          Dst:             avtab_search_node_next
        - Src:             'assertion.c:225,11'
          Dst:             match_node_key
        - Src:             'assertion.c:228,10'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:243,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:246,7'
          Dst:             extended_permissions_violated
        - Src:             'assertion.c:247,20'
          Dst:             sepol_extended_perms_to_string
        - Src:             'assertion.c:249,7'
          Dst:             policy_name
        - Src:             'assertion.c:267,11'
          Dst:             match_node_key
        - Src:             'assertion.c:270,10'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:285,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:288,7'
          Dst:             extended_permissions_violated
        - Src:             'assertion.c:289,20'
          Dst:             sepol_extended_perms_to_string
        - Src:             'assertion.c:291,7'
          Dst:             policy_name
        - Src:             'assertion.c:185,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:183,2'
          Dst:             ebitmap_next
        - Src:             'assertion.c:314,19'
          Dst:             sepol_av_to_string
        - Src:             'assertion.c:316,3'
          Dst:             policy_name
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_extended_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          254
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - extended_permissions_and
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:100,9'
          Dst:             extended_permissions_and
        - Src:             'assertion.c:109,8'
          Dst:             extended_permissions_and
        - Src:             'assertion.c:113,9'
          Dst:             extended_permissions_and
    - functionName:    match_node_key
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    match_any_class_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extended_permissions_and
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    report_assertion_avtab_matches
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          496
      EdgeCount:       105
      CyclomaticComplexity: 29
      functionsReached:
        - ebitmap_and
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_union
        - match_any_class_permissions
        - report_assertion_extended_permissions
        - report_failure
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:349,7'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:352,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:353,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:354,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:356,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:367,9'
          Dst:             ebitmap_cpy
        - Src:             'assertion.c:370,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:375,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:380,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:385,10'
          Dst:             ebitmap_union
        - Src:             'assertion.c:402,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:402,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:403,4'
          Dst:             ebitmap_start
        - Src:             'assertion.c:403,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:409,19'
          Dst:             report_assertion_extended_permissions
        - Src:             'assertion.c:414,6'
          Dst:             report_failure
        - Src:             'assertion.c:403,4'
          Dst:             ebitmap_next
        - Src:             'assertion.c:402,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:422,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:423,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:424,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_assertion_extended_permissions_avtab
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      bool
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         114
      ICount:          626
      EdgeCount:       155
      CyclomaticComplexity: 43
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
        - check_extended_permissions
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - match_any_class_permissions
        - match_node_key
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:476,2'
          Dst:             ebitmap_start
        - Src:             'assertion.c:476,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:478,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:478,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:480,16'
          Dst:             avtab_search_node
        - Src:             'assertion.c:490,9'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:482,16'
          Dst:             avtab_search_node_next
        - Src:             'assertion.c:503,11'
          Dst:             match_node_key
        - Src:             'assertion.c:506,51'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:521,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:530,11'
          Dst:             match_node_key
        - Src:             'assertion.c:533,51'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:548,10'
          Dst:             check_extended_permissions
        - Src:             'assertion.c:478,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:476,2'
          Dst:             ebitmap_next
    - functionName:    check_assertion_extended_permissions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          370
      EdgeCount:       85
      CyclomaticComplexity: 24
      functionsReached:
        - check_assertion_extended_permissions_avtab
        - ebitmap_and
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:590,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:591,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:592,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:594,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:607,9'
          Dst:             ebitmap_cpy
        - Src:             'assertion.c:610,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:615,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:620,9'
          Dst:             ebitmap_and
        - Src:             'assertion.c:625,10'
          Dst:             ebitmap_union
        - Src:             'assertion.c:637,2'
          Dst:             ebitmap_start
        - Src:             'assertion.c:637,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:638,3'
          Dst:             ebitmap_start
        - Src:             'assertion.c:638,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'assertion.c:643,8'
          Dst:             check_assertion_extended_permissions_avtab
        - Src:             'assertion.c:638,3'
          Dst:             ebitmap_next
        - Src:             'assertion.c:637,2'
          Dst:             ebitmap_next
        - Src:             'assertion.c:654,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:655,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:656,2'
          Dst:             ebitmap_destroy
    - functionName:    check_assertion_self_match
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_and
        - ebitmap_destroy
        - ebitmap_match_any
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:724,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:728,7'
          Dst:             ebitmap_match_any
        - Src:             'assertion.c:737,2'
          Dst:             ebitmap_destroy
    - functionName:    check_assertion_notself_match
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          170
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_and
        - ebitmap_cardinality
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:666,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:667,2'
          Dst:             ebitmap_init
        - Src:             'assertion.c:669,7'
          Dst:             ebitmap_and
        - Src:             'assertion.c:675,8'
          Dst:             ebitmap_cpy
        - Src:             'assertion.c:678,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:683,20'
          Dst:             ebitmap_cardinality
        - Src:             'assertion.c:684,20'
          Dst:             ebitmap_cardinality
        - Src:             'assertion.c:692,8'
          Dst:             ebitmap_and
        - Src:             'assertion.c:694,4'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:697,17'
          Dst:             ebitmap_cardinality
        - Src:             'assertion.c:698,3'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:710,2'
          Dst:             ebitmap_destroy
        - Src:             'assertion.c:711,2'
          Dst:             ebitmap_destroy
    - functionName:    report_assertion_failures
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_map
        - report_assertion_avtab_matches
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:439,7'
          Dst:             avtab_map
        - Src:             'assertion.c:439,7'
          Dst:             report_assertion_avtab_matches
        - Src:             'assertion.c:444,7'
          Dst:             avtab_map
        - Src:             'assertion.c:444,7'
          Dst:             report_assertion_avtab_matches
    - functionName:    check_assertions
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          254
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - check_assertion
        - report_assertion_failures
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:825,8'
          Dst:             check_assertion
        - Src:             'assertion.c:831,9'
          Dst:             report_assertion_failures
    - functionName:    check_assertion
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_map
        - check_assertion_avtab_match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:805,7'
          Dst:             avtab_map
        - Src:             'assertion.c:805,7'
          Dst:             check_assertion_avtab_match
        - Src:             'assertion.c:809,8'
          Dst:             avtab_map
        - Src:             'assertion.c:809,8'
          Dst:             check_assertion_avtab_match
    - functionName:    check_assertion_avtab_match
      functionSourceFile: '/src/selinux/libsepol/src/assertion.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          218
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - check_assertion_extended_permissions
        - check_assertion_notself_match
        - check_assertion_self_match
        - ebitmap_match_any
        - match_any_class_permissions
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'assertion.c:751,7'
          Dst:             match_any_class_permissions
        - Src:             'assertion.c:754,7'
          Dst:             ebitmap_match_any
        - Src:             'assertion.c:758,8'
          Dst:             check_assertion_notself_match
        - Src:             'assertion.c:765,8'
          Dst:             ebitmap_match_any
        - Src:             'assertion.c:767,10'
          Dst:             check_assertion_self_match
        - Src:             'assertion.c:779,8'
          Dst:             check_assertion_extended_permissions
    - functionName:    avtab_insertf
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 587
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - avtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:587,9'
          Dst:             avtab_insert
    - functionName:    avtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          285
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - avtab_hash
        - avtab_insert_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:146,11'
          Dst:             avtab_hash
        - Src:             'avtab.c:169,12'
          Dst:             avtab_insert_node
    - functionName:    avtab_hash
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          139
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_insert_node
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          147
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:106,12'
          Dst:             calloc
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    84
      BranchProfiles:  []
      Callsites:       []
    - functionName:    exceeds_available_bytes
      functionSourceFile: '/src/selinux/libsepol/src/./private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_read
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          444
      EdgeCount:       97
      CyclomaticComplexity: 23
      functionsReached:
        - avtab_alloc
        - avtab_destroy
        - avtab_insertf
        - avtab_read_item
        - exceeds_available_bytes
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:597,7'
          Dst:             next_entry
        - Src:             'avtab.c:603,32'
          Dst:             exceeds_available_bytes
        - Src:             'avtab.c:608,7'
          Dst:             avtab_alloc
        - Src:             'avtab.c:615,8'
          Dst:             avtab_read_item
        - Src:             'avtab.c:615,8'
          Dst:             avtab_insertf
        - Src:             'avtab.c:629,2'
          Dst:             avtab_destroy
    - functionName:    avtab_alloc
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:384,14'
          Dst:             calloc
    - functionName:    avtab_read_item
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         212
      ICount:          1422
      EdgeCount:       275
      CyclomaticComplexity: 65
      functionsReached:
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:452,8'
          Dst:             next_entry
        - Src:             'avtab.c:464,8'
          Dst:             next_entry
        - Src:             'avtab.c:526,7'
          Dst:             next_entry
        - Src:             'avtab.c:553,8'
          Dst:             next_entry
        - Src:             'avtab.c:559,8'
          Dst:             next_entry
        - Src:             'avtab.c:565,8'
          Dst:             next_entry
        - Src:             'avtab.c:574,8'
          Dst:             next_entry
    - functionName:    avtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          117
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_hash_eval
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:416,2'
          Dst:             printf
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_init
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_map
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_search_node_next
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          226
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avtab_search_node
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          251
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - avtab_hash
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:258,11'
          Dst:             avtab_hash
    - functionName:    avtab_search
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          252
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - avtab_hash
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:223,11'
          Dst:             avtab_hash
    - functionName:    avtab_insert_nonunique
      functionSourceFile: '/src/selinux/libsepol/src/avtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          264
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - avtab_hash
        - avtab_insert_node
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'avtab.c:190,11'
          Dst:             avtab_hash
        - Src:             'avtab.c:208,12'
          Dst:             avtab_insert_node
    - functionName:    sepol_msg_set_callback
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_get_fname
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_get_channel
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_get_level
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_debug
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 17
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_msg_default_handler
      functionSourceFile: '/src/selinux/libsepol/src/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - fprintf
        - sepol_msg_get_channel
        - sepol_msg_get_fname
        - sepol_msg_get_level
        - vfprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'debug.c:49,2'
          Branch Sides:    []
      Callsites:
        - Src:             'debug.c:49,10'
          Dst:             sepol_msg_get_level
        - Src:             'debug.c:62,3'
          Dst:             sepol_msg_get_channel
        - Src:             'debug.c:62,34'
          Dst:             sepol_msg_get_fname
        - Src:             'debug.c:61,2'
          Dst:             fprintf
        - Src:             'debug.c:65,2'
          Dst:             vfprintf
        - Src:             'debug.c:68,2'
          Dst:             fprintf
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vfprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_read
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         99
      ICount:          682
      EdgeCount:       127
      CyclomaticComplexity: 30
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - next_entry
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:537,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:539,7'
          Dst:             next_entry
        - Src:             'ebitmap.c:567,8'
          Dst:             next_entry
        - Src:             'ebitmap.c:592,8'
          Dst:             next_entry
        - Src:             'ebitmap.c:631,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_destroy
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    109
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_highest_set_bit
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_init_range
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          215
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:453,2'
          Dst:             ebitmap_init
    - functionName:    ebitmap_set_bit
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          310
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_get_bit
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_match_any
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_contains
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_cpy
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:276,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:282,4'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_cmp
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_hamming_distance
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cardinality
        - ebitmap_cmp
        - ebitmap_destroy
        - ebitmap_xor
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:240,6'
          Dst:             ebitmap_cmp
        - Src:             'ebitmap.c:242,7'
          Dst:             ebitmap_xor
        - Src:             'ebitmap.c:245,13'
          Dst:             ebitmap_cardinality
        - Src:             'ebitmap.c:246,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_xor
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          228
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:120,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:144,5'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_cardinality
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          38
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_andnot
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_and
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_not
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:213,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:214,7'
          Dst:             ebitmap_not
        - Src:             'ebitmap.c:217,7'
          Dst:             ebitmap_and
        - Src:             'ebitmap.c:218,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_not
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          178
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:169,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:190,5'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_and
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          175
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:77,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:87,6'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_union
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - ebitmap_or
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:63,6'
          Dst:             ebitmap_or
        - Src:             'ebitmap.c:65,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_or
      functionSourceFile: '/src/selinux/libsepol/src/ebitmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          225
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ebitmap.c:23,2'
          Dst:             ebitmap_init
        - Src:             'ebitmap.c:31,4'
          Dst:             ebitmap_destroy
    - functionName:    expand_cond_insert
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3378
      functionLinenumberEnd: 3420
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          253
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search_node
      functionUses:    4
      BranchProfiles:
        - Branch String:   'expand.c:3406,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:3383,9'
          Dst:             avtab_search_node
        - Src:             'expand.c:3387,10'
          Dst:             avtab_insert_nonunique
    - functionName:    expand_avtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3234
      functionLinenumberEnd: 3293
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          334
      EdgeCount:       60
      CyclomaticComplexity: 12
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    4
      BranchProfiles:
        - Branch String:   'expand.c:3273,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:3246,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:3253,11'
          Dst:             avtab_search_node_next
        - Src:             'expand.c:3258,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:3263,10'
          Dst:             avtab_insert_nonunique
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    context_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2125
      functionLinenumberEnd: 2129
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_context_cpy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2129,9'
          Dst:             mls_context_cpy
    - functionName:    ocontext_copy_xen
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2133
      functionLinenumberEnd: 2196
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         74
      ICount:          494
      EdgeCount:       91
      CyclomaticComplexity: 19
      functionsReached:
        - context_copy
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:2157,4'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2177,17'
          Dst:             strdup
        - Src:             'expand.c:2188,8'
          Dst:             context_copy
    - functionName:    strdup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    82
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ocontext_copy_selinux
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2199
      functionLinenumberEnd: 2289
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         116
      ICount:          804
      EdgeCount:       144
      CyclomaticComplexity: 30
      functionsReached:
        - context_copy
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:2223,4'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2229,17'
          Dst:             strdup
        - Src:             'expand.c:2234,9'
          Dst:             context_copy
        - Src:             'expand.c:2247,31'
          Dst:             strdup
        - Src:             'expand.c:2265,17'
          Dst:             strdup
        - Src:             'expand.c:2282,8'
          Dst:             context_copy
    - functionName:    ebitmap_expand_roles
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:81,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:82,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:82,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:84,3'
          Dst:             __assert_fail
        - Src:             'expand.c:86,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:87,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:91,8'
          Dst:             ebitmap_union
        - Src:             'expand.c:92,5'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:82,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:97,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:98,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:99,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:102,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    25
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constraint_node_clone
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          401
      EdgeCount:       85
      CyclomaticComplexity: 23
      functionsReached:
        - calloc
        - constraint_expr_destroy
        - constraint_expr_init
        - ebitmap_cpy
        - ebitmap_expand_roles
        - expand_convert_type_set
        - map_ebitmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:338,20'
          Dst:             calloc
        - Src:             'expand.c:341,8'
          Dst:             constraint_expr_init
        - Src:             'expand.c:354,10'
          Dst:             map_ebitmap
        - Src:             'expand.c:361,10'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:371,10'
          Dst:             map_ebitmap
        - Src:             'expand.c:374,10'
          Dst:             ebitmap_expand_roles
        - Src:             'expand.c:378,10'
          Dst:             map_ebitmap
        - Src:             'expand.c:383,10'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:411,2'
          Dst:             constraint_expr_destroy
    - functionName:    map_ebitmap
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:63,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:65,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:65,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:68,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:65,2'
          Dst:             ebitmap_next
    - functionName:    expand_convert_type_set
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2408
      functionLinenumberEnd: 2427
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - map_ebitmap
        - type_set_destroy
        - type_set_expand
        - type_set_init
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2411,2'
          Dst:             type_set_init
        - Src:             'expand.c:2413,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:2416,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:2421,6'
          Dst:             type_set_expand
        - Src:             'expand.c:2424,2'
          Dst:             type_set_destroy
    - functionName:    type_set_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2547
      functionLinenumberEnd: 2647
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          571
      EdgeCount:       147
      CyclomaticComplexity: 39
      functionsReached:
        - __assert_fail
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2555,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2556,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2559,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2559,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2575,8'
          Dst:             ebitmap_union
        - Src:             'expand.c:2579,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2559,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2586,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2587,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2587,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2590,8'
          Dst:             ebitmap_union
        - Src:             'expand.c:2596,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2587,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2605,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2610,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2616,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2616,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2617,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2618,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2616,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2626,5'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2626,5'
          Dst:             __assert_fail
        - Src:             'expand.c:2629,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2630,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2633,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2643,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2645,2'
          Dst:             ebitmap_destroy
    - functionName:    class_copy_default_new_object
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          413
      EdgeCount:       88
      CyclomaticComplexity: 22
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    perm_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          94
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_insert
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:243,11'
          Dst:             strdup
        - Src:             'expand.c:252,8'
          Dst:             hashtab_insert
    - functionName:    cond_avrule_list_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2018
      functionLinenumberEnd: 2034
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - convert_and_expand_rule
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2023,7'
          Dst:             convert_and_expand_rule
    - functionName:    convert_and_expand_rule
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1982
      functionLinenumberEnd: 2012
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          156
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - expand_convert_type_set
        - expand_rule_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1992,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:1993,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:1999,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2002,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2006,11'
          Dst:             expand_rule_helper
        - Src:             'expand.c:2009,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2010,2'
          Dst:             ebitmap_destroy
    - functionName:    expand_rule_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1927
      functionLinenumberEnd: 1968
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          284
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_avrule_helper
        - expand_terule_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1932,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:1932,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1935,14'
          Dst:             expand_avrule_helper
        - Src:             'expand.c:1941,14'
          Dst:             expand_terule_helper
        - Src:             'expand.c:1949,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1949,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1951,14'
          Dst:             expand_avrule_helper
        - Src:             'expand.c:1957,14'
          Dst:             expand_terule_helper
        - Src:             'expand.c:1949,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1932,2'
          Dst:             ebitmap_next
    - functionName:    expand_avrule_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1856
      functionLinenumberEnd: 1919
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          284
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - allocate_xperms
        - avrule_to_avtab_spec
        - find_avtab_node
      functionUses:    2
      BranchProfiles:
        - Branch String:   'expand.c:1885,3'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:1869,20'
          Dst:             avrule_to_avtab_spec
        - Src:             'expand.c:1875,10'
          Dst:             find_avtab_node
        - Src:             'expand.c:1908,8'
          Dst:             allocate_xperms
    - functionName:    expand_terule_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1721
      functionLinenumberEnd: 1810
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          538
      EdgeCount:       92
      CyclomaticComplexity: 24
      functionsReached:
        - avrule_to_avtab_spec
        - avtab_search_node
        - find_avtab_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1734,20'
          Dst:             avrule_to_avtab_spec
        - Src:             'expand.c:1748,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:1752,11'
          Dst:             avtab_search_node
        - Src:             'expand.c:1794,10'
          Dst:             find_avtab_node
    - functionName:    avrule_to_avtab_spec
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1706
      functionLinenumberEnd: 1708
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_avtab_node
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1637
      functionLinenumberEnd: 1703
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          382
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1649,11'
          Dst:             avtab_search_node
        - Src:             'expand.c:1656,12'
          Dst:             avtab_search_node_next
        - Src:             'expand.c:1662,10'
          Dst:             avtab_search_node
        - Src:             'expand.c:1671,11'
          Dst:             avtab_search_node_next
        - Src:             'expand.c:1683,10'
          Dst:             avtab_insert_nonunique
    - functionName:    allocate_xperms
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1815
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          171
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:1829,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:1821,4'
          Dst:             calloc
    - functionName:    cond_node_map_bools
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2037
      functionLinenumberEnd: 2057
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          178
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - cond_normalize_expr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2051,6'
          Dst:             cond_normalize_expr
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_range_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_level_eq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:154,10'
          Dst:             mls_level_eq
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:155,10'
          Dst:             mls_level_eq
    - functionName:    exp_rangetr_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1510
      functionLinenumberEnd: 1572
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          390
      EdgeCount:       67
      CyclomaticComplexity: 17
      functionsReached:
        - calloc
        - hashtab_insert
        - hashtab_search
        - mls_range_destroy
        - mls_range_eq
        - mls_semantic_range_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1515,14'
          Dst:             calloc
        - Src:             'expand.c:1521,6'
          Dst:             mls_semantic_range_expand
        - Src:             'expand.c:1529,6'
          Dst:             hashtab_search
        - Src:             'expand.c:1531,7'
          Dst:             mls_range_eq
        - Src:             'expand.c:1533,4'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1547,7'
          Dst:             calloc
        - Src:             'expand.c:1556,7'
          Dst:             hashtab_insert
        - Src:             'expand.c:1568,3'
          Dst:             mls_range_destroy
    - functionName:    mls_semantic_range_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1000
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mls_level_destroy
        - mls_level_dom
        - mls_range_destroy
        - mls_semantic_level_expand
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:985,6'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:988,6'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:989,3'
          Dst:             mls_level_destroy
        - Src:             'expand.c:993,7'
          Dst:             mls_level_dom
        - Src:             'expand.c:994,3'
          Dst:             mls_range_destroy
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_semantic_level_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          473
      EdgeCount:       91
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - ebitmap_get_bit
        - ebitmap_set_bit
        - hashtab_search
        - mls_level_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:935,2'
          Dst:             mls_level_init
        - Src:             'expand.c:949,31'
          Dst:             hashtab_search
        - Src:             'expand.c:954,3'
          Dst:             __errno_location
        - Src:             'expand.c:965,9'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:972,8'
          Dst:             ebitmap_set_bit
    - functionName:    mls_level_dom
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_contains
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:109,36'
          Dst:             ebitmap_contains
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expand_filename_trans_helper
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1425
      functionLinenumberEnd: 1454
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          243
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - policydb_filetrans_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1431,7'
          Dst:             policydb_filetrans_insert
    - functionName:    cond_node_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2063
      functionLinenumberEnd: 2121
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          390
      EdgeCount:       71
      CyclomaticComplexity: 19
      functionsReached:
        - cond_avrule_list_copy
        - cond_node_copy
        - cond_node_create
        - cond_node_destroy
        - cond_node_map_bools
        - cond_node_search
        - cond_normalize_expr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2069,6'
          Dst:             cond_node_copy
        - Src:             'expand.c:2079,6'
          Dst:             cond_normalize_expr
        - Src:             'expand.c:2086,8'
          Dst:             cond_node_create
        - Src:             'expand.c:2092,6'
          Dst:             cond_node_map_bools
        - Src:             'expand.c:2093,3'
          Dst:             cond_node_destroy
        - Src:             'expand.c:2099,13'
          Dst:             cond_node_search
        - Src:             'expand.c:2101,3'
          Dst:             cond_node_destroy
        - Src:             'expand.c:2106,2'
          Dst:             cond_node_destroy
        - Src:             'expand.c:2109,6'
          Dst:             cond_avrule_list_copy
        - Src:             'expand.c:2114,6'
          Dst:             cond_avrule_list_copy
    - functionName:    copy_neverallow
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2652
      functionLinenumberEnd: 2749
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          342
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - __assert_fail
        - avrule_init
        - calloc
        - class_perm_node_init
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_init
        - expand_convert_type_set
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2658,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2659,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2661,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2664,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:2672,2'
          Dst:             avrule_init
        - Src:             'expand.c:2678,29'
          Dst:             strdup
        - Src:             'expand.c:2683,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2686,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2696,3'
          Dst:             class_perm_node_init
        - Src:             'expand.c:2698,3'
          Dst:             __assert_fail
        - Src:             'expand.c:2714,12'
          Dst:             calloc
        - Src:             'expand.c:2730,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2731,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2736,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2737,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2738,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2739,2'
          Dst:             ebitmap_destroy
    - functionName:    expand_range_trans
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1576
      functionLinenumberEnd: 1627
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          407
      EdgeCount:       91
      CyclomaticComplexity: 22
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - exp_rangetr_helper
        - expand_convert_type_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1587,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1588,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1591,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1596,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1598,4'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1604,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1604,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1606,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1606,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1608,5'
          Dst:             ebitmap_start
        - Src:             'expand.c:1608,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1609,10'
          Dst:             exp_rangetr_helper
        - Src:             'expand.c:1614,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1615,7'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1608,5'
          Dst:             ebitmap_next
        - Src:             'expand.c:1606,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1604,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1622,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1623,3'
          Dst:             ebitmap_destroy
    - functionName:    expand_filename_trans
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1457
      functionLinenumberEnd: 1505
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         54
      ICount:          313
      EdgeCount:       70
      CyclomaticComplexity: 18
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_convert_type_set
        - expand_filename_trans_helper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1466,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1467,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1469,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1475,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1482,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1482,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1483,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1483,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1484,10'
          Dst:             expand_filename_trans_helper
        - Src:             'expand.c:1483,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1491,10'
          Dst:             expand_filename_trans_helper
        - Src:             'expand.c:1482,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1499,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1500,3'
          Dst:             ebitmap_destroy
    - functionName:    copy_role_trans
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         100
      ICount:          660
      EdgeCount:       130
      CyclomaticComplexity: 32
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_convert_type_set
        - role_set_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1346,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1347,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1349,7'
          Dst:             role_set_expand
        - Src:             'expand.c:1353,7'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:1358,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1358,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1359,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1359,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1360,5'
          Dst:             ebitmap_start
        - Src:             'expand.c:1360,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1360,5'
          Dst:             ebitmap_next
        - Src:             'expand.c:1359,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1358,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1414,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1415,3'
          Dst:             ebitmap_destroy
    - functionName:    role_set_expand
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2468
      functionLinenumberEnd: 2536
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          345
      EdgeCount:       90
      CyclomaticComplexity: 23
      functionsReached:
        - __assert_fail
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
        - map_ebitmap
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2475,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2479,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2484,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2485,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2488,3'
          Dst:             __assert_fail
        - Src:             'expand.c:2489,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:2489,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2493,4'
          Dst:             __assert_fail
        - Src:             'expand.c:2495,9'
          Dst:             ebitmap_union
        - Src:             'expand.c:2499,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2489,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:2503,7'
          Dst:             map_ebitmap
        - Src:             'expand.c:2506,7'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2510,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:2510,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2511,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2510,2'
          Dst:             ebitmap_next
        - Src:             'expand.c:2515,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2516,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2521,8'
          Dst:             ebitmap_get_bit
        - Src:             'expand.c:2522,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2525,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2533,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2534,2'
          Dst:             ebitmap_destroy
    - functionName:    copy_role_allows
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1269
      functionLinenumberEnd: 1331
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         78
      ICount:          453
      EdgeCount:       101
      CyclomaticComplexity: 25
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - role_set_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1281,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1282,3'
          Dst:             ebitmap_init
        - Src:             'expand.c:1284,7'
          Dst:             role_set_expand
        - Src:             'expand.c:1289,7'
          Dst:             role_set_expand
        - Src:             'expand.c:1294,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:1294,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1295,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:1295,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:1295,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:1294,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:1324,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1325,3'
          Dst:             ebitmap_destroy
    - functionName:    expand_cond_av_node
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3425
      functionLinenumberEnd: 3481
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          448
      EdgeCount:       92
      CyclomaticComplexity: 25
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_cond_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3442,10'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3448,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3448,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3450,9'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3448,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3460,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3460,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3462,9'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3460,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3470,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:3470,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3471,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3471,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3474,9'
          Dst:             expand_cond_insert
        - Src:             'expand.c:3471,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3470,2'
          Dst:             ebitmap_next
    - functionName:    expand_cond_av_list
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3485
      functionLinenumberEnd: 3504
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_alloc
        - expand_cond_av_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3490,6'
          Dst:             avtab_alloc
        - Src:             'expand.c:3498,8'
          Dst:             expand_cond_av_node
    - functionName:    expand_avtab_node
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3302
      functionLinenumberEnd: 3359
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          447
      EdgeCount:       92
      CyclomaticComplexity: 25
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - expand_avtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3320,10'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3326,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3326,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3328,9'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3326,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3338,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3338,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3340,9'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3338,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3348,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:3348,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3349,3'
          Dst:             ebitmap_start
        - Src:             'expand.c:3349,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:3352,9'
          Dst:             expand_avtab_insert
        - Src:             'expand.c:3349,3'
          Dst:             ebitmap_next
        - Src:             'expand.c:3348,2'
          Dst:             ebitmap_next
    - functionName:    expand_avtab
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3362
      functionLinenumberEnd: 3373
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          79
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_alloc
        - avtab_map
        - expand_avtab_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:3365,6'
          Dst:             avtab_alloc
        - Src:             'expand.c:3372,9'
          Dst:             avtab_map
        - Src:             'expand.c:3372,9'
          Dst:             expand_avtab_node
    - functionName:    type_attr_map
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2362
      functionLinenumberEnd: 2400
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          238
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_cpy
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2375,8'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:2378,4'
          Dst:             ebitmap_start
        - Src:             'expand.c:2378,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:2379,9'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2378,4'
          Dst:             ebitmap_next
        - Src:             'expand.c:2385,8'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:2390,7'
          Dst:             ebitmap_set_bit
    - functionName:    genfs_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2309
      functionLinenumberEnd: 2357
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         58
      ICount:          384
      EdgeCount:       74
      CyclomaticComplexity: 18
      functionsReached:
        - context_copy
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2321,22'
          Dst:             strdup
        - Src:             'expand.c:2341,19'
          Dst:             strdup
        - Src:             'expand.c:2348,4'
          Dst:             context_copy
    - functionName:    ocontext_copy
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2292
      functionLinenumberEnd: 2306
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - ocontext_copy_selinux
        - ocontext_copy_xen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'expand.c:2294,2'
          Branch Sides:    []
      Callsites:
        - Src:             'expand.c:2296,8'
          Dst:             ocontext_copy_selinux
        - Src:             'expand.c:2299,8'
          Dst:             ocontext_copy_xen
    - functionName:    constraint_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          133
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - constraint_node_clone
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:549,14'
          Dst:             hashtab_search
        - Src:             'expand.c:556,6'
          Dst:             constraint_node_clone
        - Src:             'expand.c:558,9'
          Dst:             constraint_node_clone
    - functionName:    role_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          402
      EdgeCount:       83
      CyclomaticComplexity: 20
      functionsReached:
        - __assert_fail
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_union
        - hashtab_search
        - is_id_enabled
        - map_ebitmap
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:788,6'
          Dst:             strcmp
        - Src:             'expand.c:793,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:805,19'
          Dst:             hashtab_search
        - Src:             'expand.c:807,2'
          Dst:             __assert_fail
        - Src:             'expand.c:809,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:810,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:812,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:814,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:817,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:819,2'
          Dst:             ebitmap_start
        - Src:             'expand.c:819,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'expand.c:823,34'
          Dst:             hashtab_search
        - Src:             'expand.c:826,3'
          Dst:             __assert_fail
        - Src:             'expand.c:829,7'
          Dst:             ebitmap_union
        - Src:             'expand.c:819,2'
          Dst:             ebitmap_next
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    42
      BranchProfiles:  []
      Callsites:       []
    - functionName:    role_remap_dominates
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
        - map_ebitmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:756,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:759,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:761,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:764,2'
          Dst:             ebitmap_destroy
    - functionName:    bool_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          370
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1128,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1147,11'
          Dst:             strdup
        - Src:             'expand.c:1157,8'
          Dst:             hashtab_insert
    - functionName:    user_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
        - is_id_enabled
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:640,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:645,9'
          Dst:             hashtab_search
    - functionName:    user_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1114
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          692
      EdgeCount:       126
      CyclomaticComplexity: 32
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - hashtab_insert
        - hashtab_search
        - is_id_enabled
        - mls_level_destroy
        - mls_level_dom
        - mls_level_eq
        - mls_range_destroy
        - mls_range_eq
        - mls_semantic_level_expand
        - mls_semantic_range_expand
        - role_set_expand
        - strdup
        - user_datum_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1016,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1025,23'
          Dst:             hashtab_search
        - Src:             'expand.c:1038,12'
          Dst:             strdup
        - Src:             'expand.c:1044,9'
          Dst:             hashtab_insert
        - Src:             'expand.c:1049,4'
          Dst:             user_datum_destroy
        - Src:             'expand.c:1056,7'
          Dst:             mls_semantic_range_expand
        - Src:             'expand.c:1061,7'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:1066,8'
          Dst:             mls_level_dom
        - Src:             'expand.c:1066,8'
          Dst:             mls_level_dom
        - Src:             'expand.c:1078,7'
          Dst:             mls_semantic_range_expand
        - Src:             'expand.c:1082,7'
          Dst:             mls_semantic_level_expand
        - Src:             'expand.c:1084,4'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1087,8'
          Dst:             mls_range_eq
        - Src:             'expand.c:1088,8'
          Dst:             mls_level_eq
        - Src:             'expand.c:1089,4'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1090,4'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1093,3'
          Dst:             mls_range_destroy
        - Src:             'expand.c:1094,3'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1097,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:1100,6'
          Dst:             role_set_expand
        - Src:             'expand.c:1102,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1106,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:1108,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:1111,2'
          Dst:             ebitmap_destroy
    - functionName:    cats_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          237
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - cat_datum_destroy
        - cat_datum_init
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1234,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1245,2'
          Dst:             cat_datum_init
        - Src:             'expand.c:1246,11'
          Dst:             strdup
        - Src:             'expand.c:1253,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:1262,2'
          Dst:             cat_datum_destroy
    - functionName:    sens_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          285
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_insert
        - is_id_enabled
        - level_datum_destroy
        - level_datum_init
        - mls_level_cpy
        - mls_level_destroy
        - mls_level_init
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:1182,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:1193,2'
          Dst:             level_datum_init
        - Src:             'expand.c:1197,2'
          Dst:             mls_level_init
        - Src:             'expand.c:1198,11'
          Dst:             strdup
        - Src:             'expand.c:1202,6'
          Dst:             mls_level_cpy
        - Src:             'expand.c:1208,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:1218,3'
          Dst:             mls_level_destroy
        - Src:             'expand.c:1221,2'
          Dst:             level_datum_destroy
    - functionName:    role_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 601
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
        - is_id_enabled
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:610,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:615,9'
          Dst:             hashtab_search
    - functionName:    role_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          593
      EdgeCount:       106
      CyclomaticComplexity: 26
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - expand_convert_type_set
        - hashtab_insert
        - hashtab_search
        - is_id_enabled
        - strcmp
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:853,6'
          Dst:             strcmp
        - Src:             'expand.c:859,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:868,23'
          Dst:             hashtab_search
        - Src:             'expand.c:877,12'
          Dst:             strdup
        - Src:             'expand.c:888,9'
          Dst:             hashtab_insert
        - Src:             'expand.c:903,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:908,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:911,6'
          Dst:             expand_convert_type_set
        - Src:             'expand.c:913,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:918,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:920,3'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:923,2'
          Dst:             ebitmap_destroy
    - functionName:    alias_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          620
      EdgeCount:       115
      CyclomaticComplexity: 28
      functionsReached:
        - __assert_fail
        - ebitmap_set_bit
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:690,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:700,11'
          Dst:             strdup
        - Src:             'expand.c:718,3'
          Dst:             __assert_fail
        - Src:             'expand.c:722,8'
          Dst:             hashtab_insert
        - Src:             'expand.c:736,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:742,7'
          Dst:             ebitmap_set_bit
    - functionName:    type_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          214
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_search
        - is_id_enabled
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:580,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:585,9'
          Dst:             hashtab_search
    - functionName:    class_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          641
      EdgeCount:       119
      CyclomaticComplexity: 29
      functionsReached:
        - class_copy_default_new_object
        - hashtab_insert
        - hashtab_map
        - hashtab_search
        - is_id_enabled
        - perm_copy_callback
        - strdup
        - symtab_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:463,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:477,6'
          Dst:             symtab_init
        - Src:             'expand.c:486,8'
          Dst:             class_copy_default_new_object
        - Src:             'expand.c:492,11'
          Dst:             strdup
        - Src:             'expand.c:500,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:509,6'
          Dst:             hashtab_map
        - Src:             'expand.c:509,6'
          Dst:             perm_copy_callback
        - Src:             'expand.c:517,23'
          Dst:             strdup
        - Src:             'expand.c:524,7'
          Dst:             hashtab_search
    - functionName:    common_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          448
      EdgeCount:       83
      CyclomaticComplexity: 20
      functionsReached:
        - hashtab_insert
        - hashtab_map
        - perm_copy_callback
        - strdup
        - symtab_destroy
        - symtab_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:283,6'
          Dst:             symtab_init
        - Src:             'expand.c:289,11'
          Dst:             strdup
        - Src:             'expand.c:293,3'
          Dst:             symtab_destroy
        - Src:             'expand.c:302,6'
          Dst:             hashtab_insert
        - Src:             'expand.c:311,6'
          Dst:             hashtab_map
        - Src:             'expand.c:311,6'
          Dst:             perm_copy_callback
    - functionName:    attr_convert_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          319
      EdgeCount:       63
      CyclomaticComplexity: 16
      functionsReached:
        - ebitmap_destroy
        - ebitmap_union
        - hashtab_search
        - is_id_enabled
        - map_ebitmap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:197,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:205,13'
          Dst:             hashtab_search
        - Src:             'expand.c:210,6'
          Dst:             map_ebitmap
        - Src:             'expand.c:216,6'
          Dst:             ebitmap_union
        - Src:             'expand.c:220,2'
          Dst:             ebitmap_destroy
    - functionName:    type_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         91
      ICount:          619
      EdgeCount:       118
      CyclomaticComplexity: 29
      functionsReached:
        - ebitmap_set_bit
        - hashtab_insert
        - is_id_enabled
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:123,7'
          Dst:             is_id_enabled
        - Src:             'expand.c:131,11'
          Dst:             strdup
        - Src:             'expand.c:157,8'
          Dst:             hashtab_insert
        - Src:             'expand.c:168,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:174,7'
          Dst:             ebitmap_set_bit
    - functionName:    discard_tunables
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2872
      functionLinenumberEnd: 2969
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         75
      ICount:          400
      EdgeCount:       98
      CyclomaticComplexity: 25
      functionsReached:
        - __assert_fail
        - cond_evaluate_expr
        - printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2929,5'
          Dst:             __assert_fail
        - Src:             'expand.c:2939,17'
          Dst:             cond_evaluate_expr
        - Src:             'expand.c:2941,6'
          Dst:             printf
    - functionName:    expand_module
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2978
      functionLinenumberEnd: 3231
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         214
      ICount:          1404
      EdgeCount:       287
      CyclomaticComplexity: 75
      functionsReached:
        - alias_copy_callback
        - attr_convert_callback
        - bool_copy_callback
        - calloc
        - cats_copy_callback
        - check_assertions
        - class_copy_callback
        - common_copy_callback
        - cond_optimize_lists
        - constraint_copy_callback
        - copy_and_expand_avrule_block
        - discard_tunables
        - ebitmap_cpy
        - ebitmap_set_bit
        - evaluate_conds
        - expand_state_init
        - genfs_copy
        - hashtab_map
        - hierarchy_check_constraints
        - ocontext_copy
        - policydb_index_classes
        - policydb_index_others
        - role_bounds_copy_callback
        - role_copy_callback
        - role_fix_callback
        - role_remap_dominates
        - sens_copy_callback
        - strdup
        - type_attr_map
        - type_bounds_copy_callback
        - type_copy_callback
        - user_bounds_copy_callback
        - user_copy_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2992,2'
          Dst:             discard_tunables
        - Src:             'expand.c:2994,2'
          Dst:             expand_state_init
        - Src:             'expand.c:3010,21'
          Dst:             strdup
        - Src:             'expand.c:3025,6'
          Dst:             ebitmap_cpy
        - Src:             'expand.c:3031,20'
          Dst:             calloc
        - Src:             'expand.c:3037,30'
          Dst:             calloc
        - Src:             'expand.c:3043,30'
          Dst:             calloc
        - Src:             'expand.c:3049,30'
          Dst:             calloc
        - Src:             'expand.c:3058,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3058,6'
          Dst:             type_copy_callback
        - Src:             'expand.c:3063,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3063,6'
          Dst:             attr_convert_callback
        - Src:             'expand.c:3069,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3069,6'
          Dst:             common_copy_callback
        - Src:             'expand.c:3076,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3076,6'
          Dst:             class_copy_callback
        - Src:             'expand.c:3082,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3082,6'
          Dst:             type_bounds_copy_callback
        - Src:             'expand.c:3087,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3087,6'
          Dst:             alias_copy_callback
        - Src:             'expand.c:3091,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3097,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3097,6'
          Dst:             role_copy_callback
        - Src:             'expand.c:3099,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3099,6'
          Dst:             role_bounds_copy_callback
        - Src:             'expand.c:3105,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3105,6'
          Dst:             sens_copy_callback
        - Src:             'expand.c:3107,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3107,6'
          Dst:             cats_copy_callback
        - Src:             'expand.c:3109,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3115,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3115,6'
          Dst:             user_copy_callback
        - Src:             'expand.c:3117,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3117,6'
          Dst:             user_bounds_copy_callback
        - Src:             'expand.c:3122,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3122,6'
          Dst:             bool_copy_callback
        - Src:             'expand.c:3125,6'
          Dst:             policydb_index_classes
        - Src:             'expand.c:3129,6'
          Dst:             policydb_index_others
        - Src:             'expand.c:3145,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3145,7'
          Dst:             attr_convert_callback
        - Src:             'expand.c:3151,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3151,7'
          Dst:             role_copy_callback
        - Src:             'expand.c:3156,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3156,7'
          Dst:             user_copy_callback
        - Src:             'expand.c:3163,7'
          Dst:             hashtab_map
        - Src:             'expand.c:3163,7'
          Dst:             role_remap_dominates
        - Src:             'expand.c:3169,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3169,6'
          Dst:             role_fix_callback
        - Src:             'expand.c:3172,6'
          Dst:             copy_and_expand_avrule_block
        - Src:             'expand.c:3178,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3178,6'
          Dst:             constraint_copy_callback
        - Src:             'expand.c:3183,2'
          Dst:             cond_optimize_lists
        - Src:             'expand.c:3184,6'
          Dst:             evaluate_conds
        - Src:             'expand.c:3188,6'
          Dst:             ocontext_copy
        - Src:             'expand.c:3192,6'
          Dst:             genfs_copy
        - Src:             'expand.c:3196,29'
          Dst:             calloc
        - Src:             'expand.c:3198,29'
          Dst:             calloc
        - Src:             'expand.c:3206,7'
          Dst:             ebitmap_set_bit
        - Src:             'expand.c:3211,6'
          Dst:             hashtab_map
        - Src:             'expand.c:3211,6'
          Dst:             type_attr_map
        - Src:             'expand.c:3214,7'
          Dst:             hierarchy_check_constraints
        - Src:             'expand.c:3217,7'
          Dst:             check_assertions
    - functionName:    expand_state_init
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_and_expand_avrule_block
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2758
      functionLinenumberEnd: 2841
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         72
      ICount:          434
      EdgeCount:       95
      CyclomaticComplexity: 25
      functionsReached:
        - avrule_block_destroy
        - avtab_alloc
        - cond_node_copy
        - convert_and_expand_rule
        - copy_neverallow
        - copy_role_allows
        - copy_role_trans
        - expand_filename_trans
        - expand_range_trans
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2763,6'
          Dst:             avtab_alloc
        - Src:             'expand.c:2768,7'
          Dst:             avtab_alloc
        - Src:             'expand.c:2783,7'
          Dst:             copy_role_allows
        - Src:             'expand.c:2784,7'
          Dst:             copy_role_trans
        - Src:             'expand.c:2788,7'
          Dst:             expand_filename_trans
        - Src:             'expand.c:2792,7'
          Dst:             expand_range_trans
        - Src:             'expand.c:2801,9'
          Dst:             copy_neverallow
        - Src:             'expand.c:2808,9'
          Dst:             convert_and_expand_rule
        - Src:             'expand.c:2821,7'
          Dst:             cond_node_copy
        - Src:             'expand.c:2833,4'
          Dst:             avrule_block_destroy
    - functionName:    expand_module_avrules
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2853
      functionLinenumberEnd: 2868
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - copy_and_expand_avrule_block
        - expand_state_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2856,2'
          Dst:             expand_state_init
        - Src:             'expand.c:2868,9'
          Dst:             copy_and_expand_avrule_block
    - functionName:    expand_rule
      functionSourceFile: '/src/selinux/libsepol/src/expand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2436
      functionLinenumberEnd: 2457
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - expand_rule_helper
        - type_set_expand
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'expand.c:2444,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2445,2'
          Dst:             ebitmap_init
        - Src:             'expand.c:2447,6'
          Dst:             type_set_expand
        - Src:             'expand.c:2449,6'
          Dst:             type_set_expand
        - Src:             'expand.c:2451,11'
          Dst:             expand_rule_helper
        - Src:             'expand.c:2454,2'
          Dst:             ebitmap_destroy
        - Src:             'expand.c:2455,2'
          Dst:             ebitmap_destroy
    - functionName:    hashtab_hash_eval
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          127
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:280,2'
          Dst:             printf
    - functionName:    hashtab_map
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    103
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_search
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    92
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_remove
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          165
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_check_resize
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          196
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:78,15'
          Dst:             calloc
    - functionName:    hashtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          178
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - hashtab_check_resize
      functionUses:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:114,2'
          Dst:             hashtab_check_resize
    - functionName:    hashtab_create
      functionSourceFile: '/src/selinux/libsepol/src/hashtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hashtab.c:56,31'
          Dst:             calloc
    - functionName:    bounds_report
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          213
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_av_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:446,19'
          Dst:             sepol_av_to_string
    - functionName:    bounds_add_bad
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          122
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bounds_not_covered
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_search
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:250,25'
          Dst:             avtab_search
        - Src:             'hierarchy.c:254,11'
          Dst:             avtab_search
    - functionName:    bounds_check_rule
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          221
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - bounds_add_bad
        - bounds_not_covered
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:297,6'
          Dst:             ebitmap_get_bit
        - Src:             'hierarchy.c:299,3'
          Dst:             ebitmap_start
        - Src:             'hierarchy.c:299,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'hierarchy.c:303,9'
          Dst:             bounds_not_covered
        - Src:             'hierarchy.c:307,9'
          Dst:             bounds_not_covered
        - Src:             'hierarchy.c:312,10'
          Dst:             bounds_add_bad
        - Src:             'hierarchy.c:299,3'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bounds_check_cond_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - bounds_check_rule
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:337,8'
          Dst:             bounds_check_rule
    - functionName:    bounds_check_rule_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bounds_check_rule
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:366,9'
          Dst:             bounds_check_rule
    - functionName:    bounds_insert_helper
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          144
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_insert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:45,11'
          Dst:             avtab_insert
    - functionName:    bounds_insert_rule
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - avtab_search
        - bounds_insert_helper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:61,23'
          Dst:             avtab_search
        - Src:             'hierarchy.c:64,8'
          Dst:             bounds_insert_helper
        - Src:             'hierarchy.c:75,9'
          Dst:             avtab_search
        - Src:             'hierarchy.c:79,11'
          Dst:             avtab_search
        - Src:             'hierarchy.c:83,11'
          Dst:             bounds_insert_helper
    - functionName:    bounds_expand_rule
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          157
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - bounds_insert_rule
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:112,6'
          Dst:             ebitmap_get_bit
        - Src:             'hierarchy.c:114,3'
          Dst:             ebitmap_start
        - Src:             'hierarchy.c:114,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'hierarchy.c:116,9'
          Dst:             bounds_insert_rule
        - Src:             'hierarchy.c:114,3'
          Dst:             ebitmap_next
    - functionName:    bounds_expand_cond_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          85
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - bounds_expand_rule
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:135,8'
          Dst:             bounds_expand_rule
    - functionName:    bounds_expand_rule_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bounds_expand_rule
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:160,9'
          Dst:             bounds_expand_rule
    - functionName:    hierarchy_check_constraints
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - bounds_check_roles
        - bounds_check_types
        - bounds_check_users
        - hierarchy_add_bounds
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:677,7'
          Dst:             hierarchy_add_bounds
        - Src:             'hierarchy.c:680,7'
          Dst:             bounds_check_users
        - Src:             'hierarchy.c:684,7'
          Dst:             bounds_check_roles
        - Src:             'hierarchy.c:688,7'
          Dst:             bounds_check_types
    - functionName:    hierarchy_add_bounds
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          137
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - hashtab_map
        - hierarchy_add_role_callback
        - hierarchy_add_type_callback
        - hierarchy_add_user_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:653,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:653,7'
          Dst:             hierarchy_add_user_callback
        - Src:             'hierarchy.c:656,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:656,7'
          Dst:             hierarchy_add_role_callback
        - Src:             'hierarchy.c:659,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:659,7'
          Dst:             hierarchy_add_type_callback
    - functionName:    bounds_check_users
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - bounds_check_user_callback
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:587,2'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:587,2'
          Dst:             bounds_check_user_callback
    - functionName:    bounds_check_roles
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - bounds_check_role_callback
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:544,2'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:544,2'
          Dst:             bounds_check_role_callback
    - functionName:    bounds_check_types
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - bounds_check_type_callback
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:499,7'
          Dst:             hashtab_map
        - Src:             'hierarchy.c:499,7'
          Dst:             bounds_check_type_callback
    - functionName:    bounds_check_type_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          84
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - bounds_check_type
        - bounds_destroy_bad
        - bounds_report
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:478,8'
          Dst:             bounds_check_type
        - Src:             'hierarchy.c:481,4'
          Dst:             bounds_report
        - Src:             'hierarchy.c:483,4'
          Dst:             bounds_destroy_bad
    - functionName:    bounds_check_type
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_destroy
        - bounds_check_child_rules
        - bounds_destroy_cond_info
        - bounds_expand_parent_rules
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:420,7'
          Dst:             bounds_expand_parent_rules
        - Src:             'hierarchy.c:423,7'
          Dst:             bounds_check_child_rules
        - Src:             'hierarchy.c:426,2'
          Dst:             bounds_destroy_cond_info
        - Src:             'hierarchy.c:427,2'
          Dst:             avtab_destroy
    - functionName:    bounds_destroy_bad
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bounds_expand_parent_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          318
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - avtab_alloc
        - avtab_destroy
        - avtab_init
        - avtab_map
        - bounds_destroy_cond_info
        - bounds_expand_cond_rules
        - bounds_expand_rule_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:194,2'
          Dst:             avtab_init
        - Src:             'hierarchy.c:195,7'
          Dst:             avtab_alloc
        - Src:             'hierarchy.c:202,7'
          Dst:             avtab_map
        - Src:             'hierarchy.c:202,7'
          Dst:             bounds_expand_rule_callback
        - Src:             'hierarchy.c:210,3'
          Dst:             avtab_init
        - Src:             'hierarchy.c:211,3'
          Dst:             avtab_init
        - Src:             'hierarchy.c:216,9'
          Dst:             avtab_alloc
        - Src:             'hierarchy.c:218,9'
          Dst:             bounds_expand_cond_rules
        - Src:             'hierarchy.c:224,9'
          Dst:             avtab_alloc
        - Src:             'hierarchy.c:226,9'
          Dst:             bounds_expand_cond_rules
        - Src:             'hierarchy.c:241,2'
          Dst:             avtab_destroy
        - Src:             'hierarchy.c:242,2'
          Dst:             bounds_destroy_cond_info
    - functionName:    bounds_check_child_rules
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          140
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_map
        - bounds_check_cond_rules
        - bounds_check_rule_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:388,7'
          Dst:             avtab_map
        - Src:             'hierarchy.c:388,7'
          Dst:             bounds_check_rule_callback
        - Src:             'hierarchy.c:393,8'
          Dst:             bounds_check_cond_rules
        - Src:             'hierarchy.c:399,8'
          Dst:             bounds_check_cond_rules
    - functionName:    bounds_destroy_cond_info
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:178,3'
          Dst:             avtab_destroy
        - Src:             'hierarchy.c:179,3'
          Dst:             avtab_destroy
    - functionName:    bounds_check_role_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          148
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_contains
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:527,13'
          Dst:             ebitmap_contains
    - functionName:    bounds_check_user_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          148
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_contains
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:570,13'
          Dst:             ebitmap_contains
    - functionName:    hierarchy_add_user_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
        - strdup
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:642,8'
          Dst:             strrchr
        - Src:             'hierarchy.c:642,8'
          Dst:             strdup
        - Src:             'hierarchy.c:642,8'
          Dst:             hashtab_search
    - functionName:    hierarchy_add_role_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
        - strdup
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:641,8'
          Dst:             strrchr
        - Src:             'hierarchy.c:641,8'
          Dst:             strdup
        - Src:             'hierarchy.c:641,8'
          Dst:             hashtab_search
    - functionName:    hierarchy_add_type_callback
      functionSourceFile: '/src/selinux/libsepol/src/hierarchy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 640
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          239
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
        - strdup
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hierarchy.c:640,8'
          Dst:             strrchr
        - Src:             'hierarchy.c:640,8'
          Dst:             strdup
        - Src:             'hierarchy.c:640,8'
          Dst:             hashtab_search
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2619
      functionLinenumberEnd: 2640
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          98
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - create_str
        - range_to_str
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2628,11'
          Dst:             range_to_str
        - Src:             'kernel_to_cil.c:2630,11'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:2636,8'
          Dst:             create_str
    - functionName:    range_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2041
      functionLinenumberEnd: 2062
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - create_str
        - level_to_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2046,8'
          Dst:             level_to_str
        - Src:             'kernel_to_cil.c:2051,9'
          Dst:             level_to_str
        - Src:             'kernel_to_cil.c:2056,14'
          Dst:             create_str
    - functionName:    level_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2023
      functionLinenumberEnd: 2037
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cats_ebitmap_to_str
        - create_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2030,14'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_cil.c:2031,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:2034,15'
          Dst:             create_str
    - functionName:    cats_ebitmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          236
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - cats_ebitmap_len
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1072,19'
          Dst:             cats_ebitmap_len
        - Src:             'kernel_to_cil.c:1087,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1087,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1093,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_cil.c:1098,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1102,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1107,10'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1087,2'
          Dst:             ebitmap_next
    - functionName:    cats_ebitmap_len
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          172
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1037,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1037,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1043,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_cil.c:1046,10'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:1048,11'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:1050,11'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:1037,2'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    62
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    62
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_sid_context_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2644
      functionLinenumberEnd: 2697
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          200
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - create_str
        - snprintf
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2653,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2663,4'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:2667,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2673,10'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:2680,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_cil.c:2687,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2690,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2691,2'
          Dst:             strs_destroy
    - functionName:    write_cond_av_list_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2134
      functionLinenumberEnd: 2182
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_node_to_str
        - strs_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2147,8'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2157,12'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_cil.c:2162,10'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2170,3'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2171,3'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_cil.c:2172,3'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2173,3'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2179,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2180,2'
          Dst:             strs_destroy
    - functionName:    avtab_node_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1771
      functionLinenumberEnd: 1867
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          535
      EdgeCount:       88
      CyclomaticComplexity: 18
      functionsReached:
        - create_str
        - sepol_av_to_string
        - xperms_to_str
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:1778,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:1823,11'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_cil.c:1833,10'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:1837,11'
          Dst:             xperms_to_str
        - Src:             'kernel_to_cil.c:1850,10'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:1856,10'
          Dst:             create_str
    - functionName:    xperms_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1685
      functionLinenumberEnd: 1768
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         57
      ICount:          392
      EdgeCount:       77
      CyclomaticComplexity: 22
      functionsReached:
        - realloc
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1704,6'
          Dst:             realloc
        - Src:             'kernel_to_cil.c:1732,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1735,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1741,11'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:1744,11'
          Dst:             snprintf
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_node_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2190
      functionLinenumberEnd: 2193
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2193,9'
          Dst:             strcmp
    - functionName:    cond_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          482
      EdgeCount:       95
      CyclomaticComplexity: 20
      functionsReached:
        - create_str
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:55,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:40,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_cil.c:48,14'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:69,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:75,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:82,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:85,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:93,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_cil.c:100,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:101,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_cil.c:108,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_cil.c:113,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:116,3'
          Dst:             strs_stack_destroy
    - functionName:    map_range_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2071
      functionLinenumberEnd: 2097
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          111
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - range_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2083,10'
          Dst:             range_to_str
        - Src:             'kernel_to_cil.c:2089,7'
          Dst:             strs_create_and_add
    - functionName:    map_filename_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1957
      functionLinenumberEnd: 1987
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          181
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1974,3'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1974,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1976,9'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:1974,3'
          Dst:             ebitmap_next
    - functionName:    map_avtab_write_helper
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1876
      functionLinenumberEnd: 1898
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - avtab_node_to_str
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1885,10'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_cil.c:1890,8'
          Dst:             strs_add
    - functionName:    write_avtab_flavor_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1902
      functionLinenumberEnd: 1928
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_map
        - map_avtab_write_helper
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1907,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1916,7'
          Dst:             avtab_map
        - Src:             'kernel_to_cil.c:1916,7'
          Dst:             map_avtab_write_helper
        - Src:             'kernel_to_cil.c:1921,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1922,2'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_cil.c:1925,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1926,2'
          Dst:             strs_destroy
    - functionName:    map_type_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1425
      functionLinenumberEnd: 1433
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1431,8'
          Dst:             strs_add
    - functionName:    map_count_type_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1421
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_boolean_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1336,9'
          Dst:             strs_create_and_add
    - functionName:    map_category_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 938
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:944,8'
          Dst:             strs_add
    - functionName:    map_count_category_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 934
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_sensitivity_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:840,8'
          Dst:             strs_add
    - functionName:    map_count_sensitivity_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_sensitivitycategory_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          164
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - cats_ebitmap_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1139,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1147,11'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_cil.c:1148,4'
          Dst:             sepol_printf
    - functionName:    write_category_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          304
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_category_aliases_to_strs
        - map_count_category_aliases
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:961,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:965,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:970,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:975,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:977,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:979,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:979,7'
          Dst:             map_count_category_aliases
        - Src:             'kernel_to_cil.c:990,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:995,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:995,7'
          Dst:             map_category_aliases_to_strs
        - Src:             'kernel_to_cil.c:1000,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1004,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1005,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1010,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1011,9'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1017,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1021,2'
          Dst:             strs_destroy
    - functionName:    write_sensitivity_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          305
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_count_sensitivity_aliases
        - map_sensitivity_aliases_to_strs
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:857,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:861,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:866,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:871,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:873,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:875,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:875,7'
          Dst:             map_count_sensitivity_aliases
        - Src:             'kernel_to_cil.c:886,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:891,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:891,7'
          Dst:             map_sensitivity_aliases_to_strs
        - Src:             'kernel_to_cil.c:896,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:900,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:901,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:906,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:907,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:913,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:917,2'
          Dst:             strs_destroy
    - functionName:    write_default_mls_level
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 816
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:817,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:818,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:819,2'
          Dst:             sepol_printf
    - functionName:    write_default_range_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:718,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:744,2'
          Dst:             sepol_printf
    - functionName:    write_default_type_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:698,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:709,2'
          Dst:             sepol_printf
    - functionName:    write_default_role_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:678,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:689,2'
          Dst:             sepol_printf
    - functionName:    write_default_user_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:658,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:669,2'
          Dst:             sepol_printf
    - functionName:    write_sids_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          301
      EdgeCount:       66
      CyclomaticComplexity: 17
      functionsReached:
        - sepol_printf
        - snprintf
        - strdup
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_num_items
        - strs_read_at_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:576,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:584,10'
          Dst:             strdup
        - Src:             'kernel_to_cil.c:586,4'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:587,10'
          Dst:             strdup
        - Src:             'kernel_to_cil.c:594,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_cil.c:601,14'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:602,9'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:606,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:609,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:611,14'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:612,9'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:617,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:622,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:624,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:627,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:628,2'
          Dst:             strs_destroy
    - functionName:    class_or_common_perms_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - hashtab_ordered_to_strs
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_to_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:454,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:459,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:459,7'
          Dst:             hashtab_ordered_to_strs
        - Src:             'kernel_to_cil.c:464,6'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:465,11'
          Dst:             strs_to_str
        - Src:             'kernel_to_cil.c:469,2'
          Dst:             strs_destroy
    - functionName:    class_validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - constraint_expr_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:347,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_cil.c:361,8'
          Dst:             strs_create_and_add
    - functionName:    constraint_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         134
      ICount:          826
      EdgeCount:       161
      CyclomaticComplexity: 29
      functionsReached:
        - create_str
        - ebitmap_to_str
        - strchr
        - strdup
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:143,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_cil.c:154,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_cil.c:211,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:133,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_cil.c:181,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:186,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:188,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:190,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:193,14'
          Dst:             strdup
        - Src:             'kernel_to_cil.c:199,9'
          Dst:             strchr
        - Src:             'kernel_to_cil.c:200,16'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:202,16'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:222,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:228,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:235,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:238,15'
          Dst:             create_str
        - Src:             'kernel_to_cil.c:245,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_cil.c:252,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:253,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_cil.c:260,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_cil.c:266,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_cil.c:269,3'
          Dst:             strs_stack_destroy
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    class_constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          262
      EdgeCount:       47
      CyclomaticComplexity: 12
      functionsReached:
        - constraint_expr_to_str
        - sepol_av_to_string
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:293,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_cil.c:299,11'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_cil.c:320,8'
          Dst:             strs_create_and_add
    - functionName:    write_xen_devicetree_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3258
      functionLinenumberEnd: 3281
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3265,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3271,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pcidevice_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3223
      functionLinenumberEnd: 3254
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3230,8'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3236,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3242,3'
          Dst:             sepol_printf
    - functionName:    write_xen_iomem_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3180
      functionLinenumberEnd: 3219
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3192,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3194,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3201,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3207,3'
          Dst:             sepol_printf
    - functionName:    write_xen_ioport_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3137
      functionLinenumberEnd: 3176
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3149,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3151,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3158,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3164,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pirq_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3102
      functionLinenumberEnd: 3133
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3109,8'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3115,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3121,3'
          Dst:             sepol_printf
    - functionName:    write_xen_isid_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3097
      functionLinenumberEnd: 3098
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3098,9'
          Dst:             write_sid_context_rules_to_cil
    - functionName:    write_selinux_ibendport_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3060
      functionLinenumberEnd: 3093
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3068,8'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3074,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3080,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_ibpkey_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3004
      functionLinenumberEnd: 3056
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          224
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3019,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:3029,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3031,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:3038,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:3044,3'
          Dst:             sepol_printf
    - functionName:    inet_ntop
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_selinux_node6_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2964
      functionLinenumberEnd: 3000
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2972,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2978,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2984,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2990,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_node_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2924
      functionLinenumberEnd: 2960
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2932,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2938,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_cil.c:2944,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2950,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_netif_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2890
      functionLinenumberEnd: 2920
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2897,10'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2902,10'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2909,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_port_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2835
      functionLinenumberEnd: 2886
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          245
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:2845,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:2859,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:2861,9'
          Dst:             snprintf
        - Src:             'kernel_to_cil.c:2868,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2874,3'
          Dst:             sepol_printf
    - functionName:    write_genfscon_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2745
      functionLinenumberEnd: 2831
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          381
      EdgeCount:       86
      CyclomaticComplexity: 22
      functionsReached:
        - context_to_str
        - ebitmap_get_bit
        - strcmp
        - strlen
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2753,17'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_cil.c:2756,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2770,9'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2772,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2774,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2776,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2778,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2780,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2782,16'
          Dst:             strcmp
        - Src:             'kernel_to_cil.c:2790,10'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2796,15'
          Dst:             strlen
        - Src:             'kernel_to_cil.c:2807,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2810,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2820,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2821,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2824,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2825,2'
          Dst:             strs_destroy
    - functionName:    write_selinux_fsuse_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2707
      functionLinenumberEnd: 2741
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:2714,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:2725,9'
          Dst:             context_to_str
        - Src:             'kernel_to_cil.c:2731,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_isid_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2701
      functionLinenumberEnd: 2702
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2702,9'
          Dst:             write_sid_context_rules_to_cil
    - functionName:    write_user_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2478
      functionLinenumberEnd: 2615
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         80
      ICount:          494
      EdgeCount:       108
      CyclomaticComplexity: 30
      functionsReached:
        - ebitmap_to_strs
        - hashtab_search
        - level_to_str
        - range_to_str
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2486,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2493,8'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2499,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2501,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2504,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2508,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2512,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2517,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2525,9'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2529,9'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_cil.c:2531,5'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2535,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2537,5'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2541,4'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2543,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2545,12'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2546,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2548,4'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2553,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2558,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2564,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2567,12'
          Dst:             level_to_str
        - Src:             'kernel_to_cil.c:2572,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2575,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2577,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2581,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2586,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2592,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2594,12'
          Dst:             range_to_str
        - Src:             'kernel_to_cil.c:2599,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2602,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2604,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2609,3'
          Dst:             strs_destroy
    - functionName:    write_role_allow_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2440
      functionLinenumberEnd: 2474
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2446,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2455,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2463,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2464,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2467,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2468,2'
          Dst:             strs_destroy
    - functionName:    write_role_transition_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2399
      functionLinenumberEnd: 2436
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          172
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2405,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2416,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:2425,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2426,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2429,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2430,2'
          Dst:             strs_destroy
    - functionName:    write_role_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2274
      functionLinenumberEnd: 2395
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          528
      EdgeCount:       113
      CyclomaticComplexity: 31
      functionsReached:
        - ebitmap_to_strs
        - hashtab_search
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2283,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2291,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2298,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2300,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2303,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2307,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2311,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2315,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2323,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2328,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2332,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:2339,9'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2343,9'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_cil.c:2345,5'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2348,4'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2350,16'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2352,12'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2353,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2355,4'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2359,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:2361,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2369,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:2376,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2378,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:2381,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:2385,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2389,2'
          Dst:             strs_destroy
    - functionName:    write_cond_nodes_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2197
      functionLinenumberEnd: 2270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          303
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - calloc
        - cond_expr_to_str
        - cond_node_cmp
        - qsort
        - sepol_indent
        - sepol_printf
        - write_cond_av_list_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2208,14'
          Dst:             calloc
        - Src:             'kernel_to_cil.c:2217,10'
          Dst:             cond_expr_to_str
        - Src:             'kernel_to_cil.c:2226,2'
          Dst:             qsort
        - Src:             'kernel_to_cil.c:2226,2'
          Dst:             cond_node_cmp
        - Src:             'kernel_to_cil.c:2232,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2235,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2236,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2237,9'
          Dst:             write_cond_av_list_to_cil
        - Src:             'kernel_to_cil.c:2241,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2242,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2246,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2247,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2248,9'
          Dst:             write_cond_av_list_to_cil
        - Src:             'kernel_to_cil.c:2252,4'
          Dst:             sepol_indent
        - Src:             'kernel_to_cil.c:2253,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:2255,3'
          Dst:             sepol_printf
    - functionName:    qsort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_range_trans_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2101
      functionLinenumberEnd: 2130
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_range_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:2106,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2114,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:2114,7'
          Dst:             map_range_trans_to_str
        - Src:             'kernel_to_cil.c:2119,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2120,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2123,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2124,2'
          Dst:             strs_destroy
    - functionName:    write_filename_trans_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1990
      functionLinenumberEnd: 2019
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_filename_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1995,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:2003,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:2003,7'
          Dst:             map_filename_trans_to_str
        - Src:             'kernel_to_cil.c:2008,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:2009,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:2012,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:2013,2'
          Dst:             strs_destroy
    - functionName:    write_avtab_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1932
      functionLinenumberEnd: 1948
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - write_avtab_flavor_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1937,8'
          Dst:             write_avtab_flavor_to_cil
    - functionName:    write_type_neveraudit_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1641
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1648,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1653,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1653,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1654,8'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1653,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_cil.c:1660,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1662,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1664,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1669,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1673,2'
          Dst:             strs_destroy
    - functionName:    write_type_permissive_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1599
      functionLinenumberEnd: 1637
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1606,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1611,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1611,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1612,8'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1611,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_cil.c:1618,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1620,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1622,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1627,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1631,2'
          Dst:             strs_destroy
    - functionName:    write_type_attribute_sets_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1595
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          199
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_to_str
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1559,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1570,11'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_cil.c:1576,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:1584,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1585,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1588,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1589,2'
          Dst:             strs_destroy
    - functionName:    write_type_bounds_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1497
      functionLinenumberEnd: 1547
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          236
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - hashtab_search
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1505,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1514,10'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1522,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1524,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1526,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1531,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1537,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1541,2'
          Dst:             strs_destroy
    - functionName:    write_type_alias_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1437
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          216
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_count_type_aliases
        - map_type_aliases_to_strs
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1445,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1445,7'
          Dst:             map_count_type_aliases
        - Src:             'kernel_to_cil.c:1450,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1455,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1455,7'
          Dst:             map_type_aliases_to_strs
        - Src:             'kernel_to_cil.c:1460,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1463,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1468,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1472,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1477,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:1483,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1487,2'
          Dst:             strs_destroy
    - functionName:    write_type_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1410
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          205
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1376,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1384,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1391,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1393,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1395,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1400,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1404,2'
          Dst:             strs_destroy
    - functionName:    write_boolean_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1340
      functionLinenumberEnd: 1365
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_boolean_to_strs
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1344,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1349,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_cil.c:1349,7'
          Dst:             map_boolean_to_strs
        - Src:             'kernel_to_cil.c:1354,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1355,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1358,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1359,2'
          Dst:             strs_destroy
    - functionName:    write_role_attributes_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1291,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1299,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1306,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1308,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1310,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1315,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1319,2'
          Dst:             strs_destroy
    - functionName:    write_type_attributes_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1239
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1246,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1254,9'
          Dst:             strs_add
        - Src:             'kernel_to_cil.c:1261,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1263,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_cil.c:1265,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_cil.c:1270,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1274,2'
          Dst:             strs_destroy
    - functionName:    write_polcap_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1235
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_polcap_getname
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1205,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:1210,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_cil.c:1210,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_cil.c:1211,10'
          Dst:             sepol_polcap_getname
        - Src:             'kernel_to_cil.c:1218,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_cil.c:1210,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_cil.c:1224,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:1225,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:1228,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:1229,2'
          Dst:             strs_destroy
    - functionName:    write_mls_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          127
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_printf
        - write_category_rules_to_cil
        - write_default_mls_level
        - write_sensitivity_rules_to_cil
        - write_sensitivitycategory_rules_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:1166,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1168,3'
          Dst:             write_default_mls_level
        - Src:             'kernel_to_cil.c:1172,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:1174,7'
          Dst:             write_sensitivity_rules_to_cil
        - Src:             'kernel_to_cil.c:1179,7'
          Dst:             write_category_rules_to_cil
        - Src:             'kernel_to_cil.c:1184,7'
          Dst:             write_sensitivitycategory_rules_to_cil
    - functionName:    write_default_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          350
      EdgeCount:       78
      CyclomaticComplexity: 21
      functionsReached:
        - write_default_range_to_cil
        - write_default_role_to_cil
        - write_default_type_to_cil
        - write_default_user_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:760,9'
          Dst:             write_default_user_to_cil
        - Src:             'kernel_to_cil.c:772,9'
          Dst:             write_default_role_to_cil
        - Src:             'kernel_to_cil.c:784,9'
          Dst:             write_default_type_to_cil
        - Src:             'kernel_to_cil.c:800,9'
          Dst:             write_default_range_to_cil
    - functionName:    write_sid_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - write_sids_to_cil
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:641,8'
          Dst:             write_sids_to_cil
        - Src:             'kernel_to_cil.c:644,8'
          Dst:             write_sids_to_cil
    - functionName:    write_class_decl_rules_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          426
      EdgeCount:       82
      CyclomaticComplexity: 21
      functionsReached:
        - calloc
        - class_or_common_perms_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:488,11'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_cil.c:490,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:493,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:498,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:502,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:507,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:509,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:517,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_cil.c:522,9'
          Dst:             calloc
        - Src:             'kernel_to_cil.c:533,13'
          Dst:             hashtab_search
        - Src:             'kernel_to_cil.c:541,13'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_cil.c:549,5'
          Dst:             sepol_printf
    - functionName:    write_handle_unknown_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_cil.c:428,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_cil.c:443,2'
          Dst:             sepol_printf
    - functionName:    validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_validatetrans_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:410,9'
          Dst:             class_validatetrans_rules_to_strs
        - Src:             'kernel_to_cil.c:417,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:418,2'
          Dst:             strs_sort
    - functionName:    constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_constraint_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:384,9'
          Dst:             class_constraint_rules_to_strs
        - Src:             'kernel_to_cil.c:391,2'
          Dst:             strs_sort
        - Src:             'kernel_to_cil.c:392,2'
          Dst:             strs_sort
    - functionName:    sepol_kernel_policydb_to_cil
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_cil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3285
      functionLinenumberEnd: 3561
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         127
      ICount:          775
      EdgeCount:       182
      CyclomaticComplexity: 57
      functionsReached:
        - constraint_rules_to_strs
        - sort_ocontexts
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
        - validatetrans_rules_to_strs
        - write_avtab_to_cil
        - write_boolean_decl_rules_to_cil
        - write_class_decl_rules_to_cil
        - write_cond_nodes_to_cil
        - write_default_rules_to_cil
        - write_filename_trans_rules_to_cil
        - write_genfscon_rules_to_cil
        - write_handle_unknown_to_cil
        - write_mls_rules_to_cil
        - write_polcap_rules_to_cil
        - write_range_trans_rules_to_cil
        - write_role_allow_rules_to_cil
        - write_role_attributes_to_cil
        - write_role_decl_rules_to_cil
        - write_role_transition_rules_to_cil
        - write_selinux_fsuse_rules_to_cil
        - write_selinux_ibendport_rules_to_cil
        - write_selinux_ibpkey_rules_to_cil
        - write_selinux_isid_rules_to_cil
        - write_selinux_netif_rules_to_cil
        - write_selinux_node6_rules_to_cil
        - write_selinux_node_rules_to_cil
        - write_selinux_port_rules_to_cil
        - write_sid_decl_rules_to_cil
        - write_type_alias_rules_to_cil
        - write_type_attribute_sets_to_cil
        - write_type_attributes_to_cil
        - write_type_bounds_rules_to_cil
        - write_type_decl_rules_to_cil
        - write_type_neveraudit_rules_to_cil
        - write_type_permissive_rules_to_cil
        - write_user_decl_rules_to_cil
        - write_xen_devicetree_rules_to_cil
        - write_xen_iomem_rules_to_cil
        - write_xen_ioport_rules_to_cil
        - write_xen_isid_rules_to_cil
        - write_xen_pcidevice_rules_to_cil
        - write_xen_pirq_rules_to_cil
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_cil.c:3292,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3297,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3302,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3307,7'
          Dst:             strs_init
        - Src:             'kernel_to_cil.c:3336,7'
          Dst:             constraint_rules_to_strs
        - Src:             'kernel_to_cil.c:3341,7'
          Dst:             validatetrans_rules_to_strs
        - Src:             'kernel_to_cil.c:3346,7'
          Dst:             write_handle_unknown_to_cil
        - Src:             'kernel_to_cil.c:3351,7'
          Dst:             write_class_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3356,7'
          Dst:             write_sid_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3361,7'
          Dst:             write_default_rules_to_cil
        - Src:             'kernel_to_cil.c:3366,7'
          Dst:             write_mls_rules_to_cil
        - Src:             'kernel_to_cil.c:3371,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3372,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3374,7'
          Dst:             write_polcap_rules_to_cil
        - Src:             'kernel_to_cil.c:3379,7'
          Dst:             write_type_attributes_to_cil
        - Src:             'kernel_to_cil.c:3384,7'
          Dst:             write_role_attributes_to_cil
        - Src:             'kernel_to_cil.c:3389,7'
          Dst:             write_boolean_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3394,7'
          Dst:             write_type_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3399,7'
          Dst:             write_type_alias_rules_to_cil
        - Src:             'kernel_to_cil.c:3404,7'
          Dst:             write_type_bounds_rules_to_cil
        - Src:             'kernel_to_cil.c:3409,7'
          Dst:             write_type_attribute_sets_to_cil
        - Src:             'kernel_to_cil.c:3414,7'
          Dst:             write_type_permissive_rules_to_cil
        - Src:             'kernel_to_cil.c:3419,7'
          Dst:             write_type_neveraudit_rules_to_cil
        - Src:             'kernel_to_cil.c:3424,7'
          Dst:             write_avtab_to_cil
        - Src:             'kernel_to_cil.c:3429,7'
          Dst:             write_filename_trans_rules_to_cil
        - Src:             'kernel_to_cil.c:3435,8'
          Dst:             write_range_trans_rules_to_cil
        - Src:             'kernel_to_cil.c:3441,7'
          Dst:             write_cond_nodes_to_cil
        - Src:             'kernel_to_cil.c:3446,7'
          Dst:             write_role_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3451,7'
          Dst:             write_role_transition_rules_to_cil
        - Src:             'kernel_to_cil.c:3456,7'
          Dst:             write_role_allow_rules_to_cil
        - Src:             'kernel_to_cil.c:3461,7'
          Dst:             write_user_decl_rules_to_cil
        - Src:             'kernel_to_cil.c:3466,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3467,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_cil.c:3469,7'
          Dst:             sort_ocontexts
        - Src:             'kernel_to_cil.c:3475,8'
          Dst:             write_selinux_isid_rules_to_cil
        - Src:             'kernel_to_cil.c:3480,8'
          Dst:             write_selinux_fsuse_rules_to_cil
        - Src:             'kernel_to_cil.c:3485,8'
          Dst:             write_genfscon_rules_to_cil
        - Src:             'kernel_to_cil.c:3490,8'
          Dst:             write_selinux_port_rules_to_cil
        - Src:             'kernel_to_cil.c:3495,8'
          Dst:             write_selinux_netif_rules_to_cil
        - Src:             'kernel_to_cil.c:3500,8'
          Dst:             write_selinux_node_rules_to_cil
        - Src:             'kernel_to_cil.c:3505,8'
          Dst:             write_selinux_node6_rules_to_cil
        - Src:             'kernel_to_cil.c:3510,8'
          Dst:             write_selinux_ibpkey_rules_to_cil
        - Src:             'kernel_to_cil.c:3515,8'
          Dst:             write_selinux_ibendport_rules_to_cil
        - Src:             'kernel_to_cil.c:3520,8'
          Dst:             write_xen_isid_rules_to_cil
        - Src:             'kernel_to_cil.c:3525,8'
          Dst:             write_xen_pirq_rules_to_cil
        - Src:             'kernel_to_cil.c:3530,8'
          Dst:             write_xen_ioport_rules_to_cil
        - Src:             'kernel_to_cil.c:3535,8'
          Dst:             write_xen_iomem_rules_to_cil
        - Src:             'kernel_to_cil.c:3540,8'
          Dst:             write_xen_pcidevice_rules_to_cil
        - Src:             'kernel_to_cil.c:3545,8'
          Dst:             write_xen_devicetree_rules_to_cil
        - Src:             'kernel_to_cil.c:3552,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3553,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:3554,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3555,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:3556,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3557,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_cil.c:3558,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_cil.c:3559,2'
          Dst:             strs_destroy
    - functionName:    compare_ranges
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dtree_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:590,9'
          Dst:             strcmp
    - functionName:    pcid_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          54
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    iomem_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:567,9'
          Dst:             compare_ranges
    - functionName:    ioport_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:558,9'
          Dst:             compare_ranges
    - functionName:    pirq_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ibendport_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:532,7'
          Dst:             strcmp
    - functionName:    ibpkey_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          77
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:522,9'
          Dst:             compare_ranges
    - functionName:    node6_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:502,7'
          Dst:             memcmp
        - Src:             'kernel_to_common.c:509,9'
          Dst:             memcmp
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    node_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:486,7'
          Dst:             memcmp
        - Src:             'kernel_to_common.c:493,9'
          Dst:             memcmp
    - functionName:    netif_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          170
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
        - strcspn
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:449,18'
          Dst:             strcspn
        - Src:             'kernel_to_common.c:450,18'
          Dst:             strcspn
        - Src:             'kernel_to_common.c:451,17'
          Dst:             strlen
        - Src:             'kernel_to_common.c:452,17'
          Dst:             strlen
        - Src:             'kernel_to_common.c:464,10'
          Dst:             strcmp
        - Src:             'kernel_to_common.c:477,9'
          Dst:             strcmp
    - functionName:    strcspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    portcon_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - compare_ranges
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:429,7'
          Dst:             compare_ranges
    - functionName:    fsuse_data_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:420,9'
          Dst:             strcmp
    - functionName:    sort_ocontext_data
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          177
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - qsort
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:608,9'
          Dst:             calloc
        - Src:             'kernel_to_common.c:620,2'
          Dst:             qsort
    - functionName:    sort_ocontexts
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          246
      EdgeCount:       58
      CyclomaticComplexity: 18
      functionsReached:
        - dtree_data_cmp
        - fsuse_data_cmp
        - ibendport_data_cmp
        - ibpkey_data_cmp
        - iomem_data_cmp
        - ioport_data_cmp
        - netif_data_cmp
        - node6_data_cmp
        - node_data_cmp
        - pcid_data_cmp
        - pirq_data_cmp
        - portcon_data_cmp
        - sort_ocontext_data
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:638,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:638,8'
          Dst:             fsuse_data_cmp
        - Src:             'kernel_to_common.c:643,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:643,8'
          Dst:             portcon_data_cmp
        - Src:             'kernel_to_common.c:648,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:648,8'
          Dst:             netif_data_cmp
        - Src:             'kernel_to_common.c:653,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:653,8'
          Dst:             node_data_cmp
        - Src:             'kernel_to_common.c:658,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:658,8'
          Dst:             node6_data_cmp
        - Src:             'kernel_to_common.c:663,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:663,8'
          Dst:             ibpkey_data_cmp
        - Src:             'kernel_to_common.c:668,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:668,8'
          Dst:             ibendport_data_cmp
        - Src:             'kernel_to_common.c:673,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:673,8'
          Dst:             pirq_data_cmp
        - Src:             'kernel_to_common.c:678,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:678,8'
          Dst:             ioport_data_cmp
        - Src:             'kernel_to_common.c:683,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:683,8'
          Dst:             iomem_data_cmp
        - Src:             'kernel_to_common.c:688,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:688,8'
          Dst:             pcid_data_cmp
        - Src:             'kernel_to_common.c:693,8'
          Dst:             sort_ocontext_data
        - Src:             'kernel_to_common.c:693,8'
          Dst:             dtree_data_cmp
    - functionName:    strs_stack_empty
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_num_items
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:382,9'
          Dst:             strs_num_items
    - functionName:    strs_num_items
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_pop
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_remove_last
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:377,9'
          Dst:             strs_remove_last
    - functionName:    strs_remove_last
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          38
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_push
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:372,9'
          Dst:             strs_add
    - functionName:    strs_add
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          132
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - reallocarray
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:122,9'
          Dst:             reallocarray
    - functionName:    reallocarray
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_destroy
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_destroy
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:367,9'
          Dst:             strs_destroy
    - functionName:    strs_destroy
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    67
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_stack_init
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:362,9'
          Dst:             strs_init
    - functionName:    strs_init
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          147
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    62
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:75,14'
          Dst:             calloc
    - functionName:    ebitmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_to_strs
        - strs_destroy
        - strs_init
        - strs_sort
        - strs_to_str
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:338,7'
          Dst:             strs_init
        - Src:             'kernel_to_common.c:343,7'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_common.c:349,3'
          Dst:             strs_sort
        - Src:             'kernel_to_common.c:352,8'
          Dst:             strs_to_str
        - Src:             'kernel_to_common.c:355,2'
          Dst:             strs_destroy
    - functionName:    ebitmap_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strs_add
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:319,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_common.c:319,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_common.c:323,8'
          Dst:             strs_add
        - Src:             'kernel_to_common.c:319,2'
          Dst:             ebitmap_next
    - functionName:    strs_sort
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - qsort
        - strs_cmp
      functionUses:    53
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:217,2'
          Dst:             qsort
        - Src:             'kernel_to_common.c:217,2'
          Dst:             strs_cmp
    - functionName:    strs_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          187
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
        - strlen
        - strs_len_items
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:251,8'
          Dst:             strs_len_items
        - Src:             'kernel_to_common.c:261,9'
          Dst:             strlen
        - Src:             'kernel_to_common.c:262,8'
          Dst:             snprintf
    - functionName:    strs_len_items
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:232,10'
          Dst:             strlen
    - functionName:    strs_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:209,9'
          Dst:             strcmp
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hashtab_ordered_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_add_at_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:310,9'
          Dst:             strs_add_at_index
    - functionName:    strs_add_at_index
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          155
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - reallocarray
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:179,9'
          Dst:             reallocarray
    - functionName:    strs_write_each_indented
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sepol_indent
        - sepol_printf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:300,3'
          Dst:             sepol_indent
        - Src:             'kernel_to_common.c:301,3'
          Dst:             sepol_printf
    - functionName:    sepol_indent
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - fprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:28,6'
          Dst:             fprintf
    - functionName:    sepol_printf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - vfprintf
      functionUses:    135
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:37,6'
          Dst:             vfprintf
    - functionName:    strs_write_each
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sepol_printf
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:288,3'
          Dst:             sepol_printf
    - functionName:    strs_read_at_index
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    37
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_create_and_add
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strs_add
        - vasprintf
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:144,7'
          Dst:             vasprintf
        - Src:             'kernel_to_common.c:150,7'
          Dst:             strs_add
    - functionName:    vasprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strs_free_all
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    34
      BranchProfiles:  []
      Callsites:       []
    - functionName:    create_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vasprintf
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_common.c:50,7'
          Dst:             vasprintf
    - functionName:    context_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2472
      functionLinenumberEnd: 2488
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - create_str
        - range_to_str
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2481,11'
          Dst:             range_to_str
        - Src:             'kernel_to_conf.c:2482,9'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:2485,9'
          Dst:             create_str
    - functionName:    range_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1997
      functionLinenumberEnd: 2018
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - create_str
        - level_to_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2002,8'
          Dst:             level_to_str
        - Src:             'kernel_to_conf.c:2007,9'
          Dst:             level_to_str
        - Src:             'kernel_to_conf.c:2012,14'
          Dst:             create_str
    - functionName:    level_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1979
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cats_ebitmap_to_str
        - create_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1986,14'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_conf.c:1987,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:1990,15'
          Dst:             create_str
    - functionName:    cats_ebitmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          225
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - cats_ebitmap_len
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1065,19'
          Dst:             cats_ebitmap_len
        - Src:             'kernel_to_conf.c:1078,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1078,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1084,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_conf.c:1089,10'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:1093,10'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:1078,2'
          Dst:             ebitmap_next
    - functionName:    cats_ebitmap_len
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          128
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1037,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1037,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1043,7'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_conf.c:1046,10'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:1048,11'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:1037,2'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_sid_context_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2492
      functionLinenumberEnd: 2545
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          199
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - create_str
        - snprintf
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2501,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2511,4'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2515,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2521,10'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:2528,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_conf.c:2535,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2538,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2539,2'
          Dst:             strs_destroy
    - functionName:    write_cond_av_list_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2090
      functionLinenumberEnd: 2138
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_node_to_str
        - strs_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2103,8'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2113,12'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_conf.c:2118,10'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:2126,3'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2127,3'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_conf.c:2128,3'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2129,3'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:2135,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2136,2'
          Dst:             strs_destroy
    - functionName:    avtab_node_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1736
      functionLinenumberEnd: 1823
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          453
      EdgeCount:       70
      CyclomaticComplexity: 14
      functionsReached:
        - create_str
        - sepol_av_to_string
        - sepol_extended_perms_to_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:1742,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:1787,16'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_conf.c:1797,10'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:1801,16'
          Dst:             sepol_extended_perms_to_string
        - Src:             'kernel_to_conf.c:1807,10'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:1812,10'
          Dst:             create_str
    - functionName:    cond_node_cmp
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2146
      functionLinenumberEnd: 2149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2149,9'
          Dst:             strcmp
    - functionName:    cond_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          482
      EdgeCount:       95
      CyclomaticComplexity: 20
      functionsReached:
        - create_str
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:54,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:39,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_conf.c:47,14'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:67,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:73,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:80,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:83,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:91,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_conf.c:98,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:99,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_conf.c:106,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_conf.c:111,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:114,3'
          Dst:             strs_stack_destroy
    - functionName:    map_range_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2027
      functionLinenumberEnd: 2053
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          111
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - range_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2039,10'
          Dst:             range_to_str
        - Src:             'kernel_to_conf.c:2045,7'
          Dst:             strs_create_and_add
    - functionName:    map_filename_trans_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1913
      functionLinenumberEnd: 1943
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          181
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1930,3'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1930,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1932,9'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:1930,3'
          Dst:             ebitmap_next
    - functionName:    map_avtab_write_helper
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1854
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - avtab_node_to_str
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1841,10'
          Dst:             avtab_node_to_str
        - Src:             'kernel_to_conf.c:1846,8'
          Dst:             strs_add
    - functionName:    write_avtab_flavor_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1858
      functionLinenumberEnd: 1884
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - avtab_map
        - map_avtab_write_helper
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each_indented
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1863,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1872,7'
          Dst:             avtab_map
        - Src:             'kernel_to_conf.c:1872,7'
          Dst:             map_avtab_write_helper
        - Src:             'kernel_to_conf.c:1877,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1878,2'
          Dst:             strs_write_each_indented
        - Src:             'kernel_to_conf.c:1881,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1882,2'
          Dst:             strs_destroy
    - functionName:    attr_strs_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1564
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          193
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - snprintf
        - strlen
        - strs_len_items
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1537,8'
          Dst:             strs_len_items
        - Src:             'kernel_to_conf.c:1547,9'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:1548,8'
          Dst:             snprintf
    - functionName:    attrmap_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1568
      functionLinenumberEnd: 1590
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - attr_strs_to_str
        - ebitmap_to_strs
        - strs_destroy
        - strs_init
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1573,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1578,7'
          Dst:             ebitmap_to_strs
        - Src:             'kernel_to_conf.c:1583,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1585,8'
          Dst:             attr_strs_to_str
        - Src:             'kernel_to_conf.c:1588,2'
          Dst:             strs_destroy
    - functionName:    map_type_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1416
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1414,8'
          Dst:             strs_add
    - functionName:    map_count_type_aliases
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1397
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_boolean_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1319,9'
          Dst:             strs_create_and_add
    - functionName:    map_category_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:929,8'
          Dst:             strs_add
    - functionName:    map_sensitivity_aliases_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strs_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:798,8'
          Dst:             strs_add
    - functionName:    write_level_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          167
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - cats_ebitmap_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1125,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1133,11'
          Dst:             cats_ebitmap_to_str
        - Src:             'kernel_to_conf.c:1134,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1137,4'
          Dst:             sepol_printf
    - functionName:    write_category_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          392
      EdgeCount:       80
      CyclomaticComplexity: 22
      functionsReached:
        - calloc
        - create_str
        - hashtab_map
        - hashtab_search
        - map_category_aliases_to_strs
        - sepol_printf
        - strchr
        - strdup
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:944,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:949,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:949,7'
          Dst:             map_category_aliases_to_strs
        - Src:             'kernel_to_conf.c:954,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:957,19'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:965,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:966,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:973,24'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:980,24'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:994,9'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1003,8'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:1004,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1006,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1009,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1021,2'
          Dst:             strs_destroy
    - functionName:    write_sensitivity_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         76
      ICount:          484
      EdgeCount:       102
      CyclomaticComplexity: 28
      functionsReached:
        - calloc
        - create_str
        - hashtab_map
        - hashtab_search
        - map_sensitivity_aliases_to_strs
        - sepol_printf
        - strchr
        - strdup
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:813,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:818,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:818,7'
          Dst:             map_sensitivity_aliases_to_strs
        - Src:             'kernel_to_conf.c:823,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:826,20'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:834,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:835,12'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:842,25'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:849,25'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:863,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:872,8'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:873,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:875,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:878,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:883,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:888,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:896,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:901,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:903,2'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:913,2'
          Dst:             strs_destroy
    - functionName:    write_default_range_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:694,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:720,2'
          Dst:             sepol_printf
    - functionName:    write_default_type_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:674,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:685,2'
          Dst:             sepol_printf
    - functionName:    write_default_role_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:654,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:665,2'
          Dst:             sepol_printf
    - functionName:    write_default_user_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:634,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:645,2'
          Dst:             sepol_printf
    - functionName:    class_or_common_perms_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - hashtab_ordered_to_strs
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_to_str
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:538,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:543,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:543,7'
          Dst:             hashtab_ordered_to_strs
        - Src:             'kernel_to_conf.c:548,6'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:549,11'
          Dst:             strs_to_str
        - Src:             'kernel_to_conf.c:553,2'
          Dst:             strs_destroy
    - functionName:    write_sids_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          207
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - sepol_printf
        - snprintf
        - strdup
        - strs_add_at_index
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_num_items
        - strs_read_at_index
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:473,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:481,10'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:483,4'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:484,10'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:490,8'
          Dst:             strs_add_at_index
        - Src:             'kernel_to_conf.c:497,14'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:498,9'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:502,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:506,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:507,2'
          Dst:             strs_destroy
    - functionName:    class_validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - constraint_expr_to_str
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:351,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_conf.c:365,8'
          Dst:             strs_create_and_add
    - functionName:    constraint_expr_to_str
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         134
      ICount:          826
      EdgeCount:       161
      CyclomaticComplexity: 29
      functionsReached:
        - create_str
        - ebitmap_to_str
        - strchr
        - strdup
        - strs_stack_destroy
        - strs_stack_empty
        - strs_stack_init
        - strs_stack_pop
        - strs_stack_push
      functionUses:    2
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:141,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_conf.c:152,4'
          Branch Sides:    []
        - Branch String:   'kernel_to_conf.c:208,4'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:131,7'
          Dst:             strs_stack_init
        - Src:             'kernel_to_conf.c:178,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:183,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:185,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:187,14'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:190,14'
          Dst:             strdup
        - Src:             'kernel_to_conf.c:196,9'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:197,16'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:199,16'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:218,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:224,11'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:231,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:234,15'
          Dst:             create_str
        - Src:             'kernel_to_conf.c:241,8'
          Dst:             strs_stack_push
        - Src:             'kernel_to_conf.c:248,12'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:249,19'
          Dst:             strs_stack_empty
        - Src:             'kernel_to_conf.c:256,2'
          Dst:             strs_stack_destroy
        - Src:             'kernel_to_conf.c:262,21'
          Dst:             strs_stack_pop
        - Src:             'kernel_to_conf.c:265,3'
          Dst:             strs_stack_destroy
    - functionName:    class_constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          281
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - constraint_expr_to_str
        - sepol_av_to_string
        - strchr
        - strs_create_and_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:288,10'
          Dst:             constraint_expr_to_str
        - Src:             'kernel_to_conf.c:294,11'
          Dst:             sepol_av_to_string
        - Src:             'kernel_to_conf.c:306,7'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:321,8'
          Dst:             strs_create_and_add
    - functionName:    write_xen_devicetree_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3108
      functionLinenumberEnd: 3131
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3115,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3121,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pcidevice_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3073
      functionLinenumberEnd: 3104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3080,8'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3086,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3092,3'
          Dst:             sepol_printf
    - functionName:    write_xen_ioport_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2987
      functionLinenumberEnd: 3026
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2999,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3001,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3008,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3014,3'
          Dst:             sepol_printf
    - functionName:    write_xen_iomem_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3030
      functionLinenumberEnd: 3069
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          164
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3042,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3044,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:3051,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:3057,3'
          Dst:             sepol_printf
    - functionName:    write_xen_pirq_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2952
      functionLinenumberEnd: 2983
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          137
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2959,8'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2965,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2971,3'
          Dst:             sepol_printf
    - functionName:    write_xen_isid_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2946
      functionLinenumberEnd: 2947
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2947,9'
          Dst:             write_sid_context_rules_to_conf
    - functionName:    write_selinux_ibendport_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2910
      functionLinenumberEnd: 2942
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2918,8'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2924,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2930,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_ibpkey_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2853
      functionLinenumberEnd: 2906
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          224
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2868,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2878,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2880,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2887,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2893,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_node6_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2813
      functionLinenumberEnd: 2849
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2821,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2827,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2833,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2839,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_node_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2772
      functionLinenumberEnd: 2808
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - context_to_str
        - inet_ntop
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2780,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2786,7'
          Dst:             inet_ntop
        - Src:             'kernel_to_conf.c:2792,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2798,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_netif_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2738
      functionLinenumberEnd: 2768
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2745,10'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2750,10'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2757,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_port_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2683
      functionLinenumberEnd: 2734
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          245
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - context_to_str
        - sepol_printf
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:2693,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:2707,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2709,9'
          Dst:             snprintf
        - Src:             'kernel_to_conf.c:2716,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2722,3'
          Dst:             sepol_printf
    - functionName:    write_genfscon_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2593
      functionLinenumberEnd: 2679
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          381
      EdgeCount:       86
      CyclomaticComplexity: 22
      functionsReached:
        - context_to_str
        - ebitmap_get_bit
        - strcmp
        - strlen
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2601,17'
          Dst:             ebitmap_get_bit
        - Src:             'kernel_to_conf.c:2604,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2618,9'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2620,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2622,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2624,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2626,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2628,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2630,16'
          Dst:             strcmp
        - Src:             'kernel_to_conf.c:2638,10'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2644,15'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:2655,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2658,10'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2668,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2669,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2672,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2673,2'
          Dst:             strs_destroy
    - functionName:    write_selinux_fsuse_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2555
      functionLinenumberEnd: 2589
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - context_to_str
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:2562,3'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:2573,9'
          Dst:             context_to_str
        - Src:             'kernel_to_conf.c:2579,3'
          Dst:             sepol_printf
    - functionName:    write_selinux_isid_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2549
      functionLinenumberEnd: 2550
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - write_sid_context_rules_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2550,9'
          Dst:             write_sid_context_rules_to_conf
    - functionName:    write_user_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2389
      functionLinenumberEnd: 2468
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          307
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - ebitmap_to_str
        - hashtab_search
        - level_to_str
        - range_to_str
        - sepol_printf
        - strchr
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2396,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2403,8'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:2409,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2411,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:2414,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:2418,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:2423,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2426,12'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:2432,8'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:2433,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2435,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2441,12'
          Dst:             level_to_str
        - Src:             'kernel_to_conf.c:2446,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2449,12'
          Dst:             range_to_str
        - Src:             'kernel_to_conf.c:2454,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2457,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2462,3'
          Dst:             strs_destroy
    - functionName:    write_role_allow_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2351
      functionLinenumberEnd: 2385
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          144
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2357,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2366,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2374,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2375,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2378,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2379,2'
          Dst:             strs_destroy
    - functionName:    write_role_transition_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2310
      functionLinenumberEnd: 2347
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          172
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2316,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2327,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:2336,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2337,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2340,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2341,2'
          Dst:             strs_destroy
    - functionName:    write_role_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2228
      functionLinenumberEnd: 2306
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          343
      EdgeCount:       77
      CyclomaticComplexity: 21
      functionsReached:
        - ebitmap_to_str
        - hashtab_search
        - sepol_printf
        - strchr
        - strlen
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2235,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2244,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:2251,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2253,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:2256,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:2260,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2264,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:2266,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:2272,11'
          Dst:             ebitmap_to_str
        - Src:             'kernel_to_conf.c:2277,7'
          Dst:             strlen
        - Src:             'kernel_to_conf.c:2282,11'
          Dst:             strchr
        - Src:             'kernel_to_conf.c:2290,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2294,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2300,2'
          Dst:             strs_destroy
    - functionName:    write_cond_nodes_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2153
      functionLinenumberEnd: 2225
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          302
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - calloc
        - cond_expr_to_str
        - cond_node_cmp
        - qsort
        - sepol_printf
        - write_cond_av_list_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2169,14'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:2178,10'
          Dst:             cond_expr_to_str
        - Src:             'kernel_to_conf.c:2187,2'
          Dst:             qsort
        - Src:             'kernel_to_conf.c:2187,2'
          Dst:             cond_node_cmp
        - Src:             'kernel_to_conf.c:2193,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2196,9'
          Dst:             write_cond_av_list_to_conf
        - Src:             'kernel_to_conf.c:2203,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:2204,9'
          Dst:             write_cond_av_list_to_conf
        - Src:             'kernel_to_conf.c:2209,3'
          Dst:             sepol_printf
    - functionName:    write_range_trans_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2057
      functionLinenumberEnd: 2086
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_range_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:2062,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:2070,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:2070,7'
          Dst:             map_range_trans_to_str
        - Src:             'kernel_to_conf.c:2075,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:2076,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:2079,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:2080,2'
          Dst:             strs_destroy
    - functionName:    write_filename_trans_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1946
      functionLinenumberEnd: 1975
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_filename_trans_to_str
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1951,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1959,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1959,7'
          Dst:             map_filename_trans_to_str
        - Src:             'kernel_to_conf.c:1964,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1965,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1968,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1969,2'
          Dst:             strs_destroy
    - functionName:    write_avtab_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1888
      functionLinenumberEnd: 1904
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - write_avtab_flavor_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1893,8'
          Dst:             write_avtab_flavor_to_conf
    - functionName:    write_type_neveraudit_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1694
      functionLinenumberEnd: 1732
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1701,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1706,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1706,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1707,8'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1706,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_conf.c:1713,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1715,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1717,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1722,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1726,2'
          Dst:             strs_destroy
    - functionName:    write_type_permissive_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1652
      functionLinenumberEnd: 1690
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          198
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1659,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1664,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1664,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1665,8'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1664,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_conf.c:1671,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1673,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1675,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1680,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1684,2'
          Dst:             strs_destroy
    - functionName:    write_type_attribute_sets_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1594
      functionLinenumberEnd: 1648
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          235
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - attrmap_to_str
        - ebitmap_cardinality
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_set_bit
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1602,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1610,7'
          Dst:             ebitmap_cardinality
        - Src:             'kernel_to_conf.c:1612,8'
          Dst:             ebitmap_cpy
        - Src:             'kernel_to_conf.c:1616,8'
          Dst:             ebitmap_set_bit
        - Src:             'kernel_to_conf.c:1618,4'
          Dst:             ebitmap_destroy
        - Src:             'kernel_to_conf.c:1622,11'
          Dst:             attrmap_to_str
        - Src:             'kernel_to_conf.c:1623,3'
          Dst:             ebitmap_destroy
        - Src:             'kernel_to_conf.c:1629,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:1637,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1638,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1641,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1642,2'
          Dst:             strs_destroy
    - functionName:    write_type_bounds_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1471
      functionLinenumberEnd: 1521
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          236
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - hashtab_search
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1479,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1488,10'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1496,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1498,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1500,11'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1505,10'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1511,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1515,2'
          Dst:             strs_destroy
    - functionName:    write_type_alias_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1420
      functionLinenumberEnd: 1467
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          185
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_map
        - hashtab_search
        - map_count_type_aliases
        - map_type_aliases_to_strs
        - sepol_printf
        - strs_destroy
        - strs_init
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1428,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1428,7'
          Dst:             map_count_type_aliases
        - Src:             'kernel_to_conf.c:1433,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1438,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1438,7'
          Dst:             map_type_aliases_to_strs
        - Src:             'kernel_to_conf.c:1443,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1446,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1451,11'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:1457,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1461,2'
          Dst:             strs_destroy
    - functionName:    write_type_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1393
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          205
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1359,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1367,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1374,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1376,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1378,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1383,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1387,2'
          Dst:             strs_destroy
    - functionName:    write_boolean_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1323
      functionLinenumberEnd: 1348
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - map_boolean_to_strs
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1327,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1332,7'
          Dst:             hashtab_map
        - Src:             'kernel_to_conf.c:1332,7'
          Dst:             map_boolean_to_strs
        - Src:             'kernel_to_conf.c:1337,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1338,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1341,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1342,2'
          Dst:             strs_destroy
    - functionName:    write_role_attributes_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1267
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1274,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1282,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1289,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1291,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1293,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1298,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1302,2'
          Dst:             strs_destroy
    - functionName:    write_type_attributes_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          195
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - sepol_printf
        - strs_add
        - strs_destroy
        - strs_init
        - strs_num_items
        - strs_read_at_index
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1229,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1237,9'
          Dst:             strs_add
        - Src:             'kernel_to_conf.c:1244,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1246,8'
          Dst:             strs_num_items
        - Src:             'kernel_to_conf.c:1248,10'
          Dst:             strs_read_at_index
        - Src:             'kernel_to_conf.c:1253,3'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:1257,2'
          Dst:             strs_destroy
    - functionName:    write_polcap_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_polcap_getname
        - strs_create_and_add
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_sort
        - strs_write_each
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1188,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:1193,2'
          Dst:             ebitmap_start
        - Src:             'kernel_to_conf.c:1193,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'kernel_to_conf.c:1194,10'
          Dst:             sepol_polcap_getname
        - Src:             'kernel_to_conf.c:1201,8'
          Dst:             strs_create_and_add
        - Src:             'kernel_to_conf.c:1193,2'
          Dst:             ebitmap_next
        - Src:             'kernel_to_conf.c:1207,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:1208,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:1211,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:1212,2'
          Dst:             strs_destroy
    - functionName:    write_mls_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1150
      functionLinenumberEnd: 1178
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          121
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - write_category_rules_to_conf
        - write_level_rules_to_conf
        - write_sensitivity_rules_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:1157,7'
          Dst:             write_sensitivity_rules_to_conf
        - Src:             'kernel_to_conf.c:1162,7'
          Dst:             write_category_rules_to_conf
        - Src:             'kernel_to_conf.c:1167,7'
          Dst:             write_level_rules_to_conf
    - functionName:    write_default_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         59
      ICount:          351
      EdgeCount:       78
      CyclomaticComplexity: 21
      functionsReached:
        - write_default_range_to_conf
        - write_default_role_to_conf
        - write_default_type_to_conf
        - write_default_user_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:736,9'
          Dst:             write_default_user_to_conf
        - Src:             'kernel_to_conf.c:748,9'
          Dst:             write_default_role_to_conf
        - Src:             'kernel_to_conf.c:760,9'
          Dst:             write_default_type_to_conf
        - Src:             'kernel_to_conf.c:776,9'
          Dst:             write_default_range_to_conf
    - functionName:    write_class_and_common_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          343
      EdgeCount:       68
      CyclomaticComplexity: 18
      functionsReached:
        - calloc
        - class_or_common_perms_to_str
        - hashtab_search
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:568,9'
          Dst:             calloc
        - Src:             'kernel_to_conf.c:579,12'
          Dst:             hashtab_search
        - Src:             'kernel_to_conf.c:587,12'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_conf.c:593,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:605,11'
          Dst:             class_or_common_perms_to_str
        - Src:             'kernel_to_conf.c:609,4'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:611,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:615,5'
          Dst:             sepol_printf
        - Src:             'kernel_to_conf.c:618,4'
          Dst:             sepol_printf
    - functionName:    write_sid_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - write_sids_to_conf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:520,8'
          Dst:             write_sids_to_conf
        - Src:             'kernel_to_conf.c:523,8'
          Dst:             write_sids_to_conf
    - functionName:    write_class_decl_rules_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:457,3'
          Dst:             sepol_printf
    - functionName:    write_handle_unknown_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_printf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'kernel_to_conf.c:430,2'
          Branch Sides:    []
      Callsites:
        - Src:             'kernel_to_conf.c:445,2'
          Dst:             sepol_printf
    - functionName:    validatetrans_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_validatetrans_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:412,9'
          Dst:             class_validatetrans_rules_to_strs
        - Src:             'kernel_to_conf.c:419,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:420,2'
          Dst:             strs_sort
    - functionName:    constraint_rules_to_strs
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - class_constraint_rules_to_strs
        - strs_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:387,9'
          Dst:             class_constraint_rules_to_strs
        - Src:             'kernel_to_conf.c:394,2'
          Dst:             strs_sort
        - Src:             'kernel_to_conf.c:395,2'
          Dst:             strs_sort
    - functionName:    sepol_kernel_policydb_to_conf
      functionSourceFile: '/src/selinux/libsepol/src/kernel_to_conf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3135
      functionLinenumberEnd: 3417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         129
      ICount:          790
      EdgeCount:       185
      CyclomaticComplexity: 58
      functionsReached:
        - constraint_rules_to_strs
        - sort_ocontexts
        - strs_destroy
        - strs_free_all
        - strs_init
        - strs_write_each
        - validatetrans_rules_to_strs
        - write_avtab_to_conf
        - write_boolean_decl_rules_to_conf
        - write_class_and_common_rules_to_conf
        - write_class_decl_rules_to_conf
        - write_cond_nodes_to_conf
        - write_default_rules_to_conf
        - write_filename_trans_rules_to_conf
        - write_genfscon_rules_to_conf
        - write_handle_unknown_to_conf
        - write_mls_rules_to_conf
        - write_polcap_rules_to_conf
        - write_range_trans_rules_to_conf
        - write_role_allow_rules_to_conf
        - write_role_attributes_to_conf
        - write_role_decl_rules_to_conf
        - write_role_transition_rules_to_conf
        - write_selinux_fsuse_rules_to_conf
        - write_selinux_ibendport_rules_to_conf
        - write_selinux_ibpkey_rules_to_conf
        - write_selinux_isid_rules_to_conf
        - write_selinux_netif_rules_to_conf
        - write_selinux_node6_rules_to_conf
        - write_selinux_node_rules_to_conf
        - write_selinux_port_rules_to_conf
        - write_sid_decl_rules_to_conf
        - write_type_alias_rules_to_conf
        - write_type_attribute_sets_to_conf
        - write_type_attributes_to_conf
        - write_type_bounds_rules_to_conf
        - write_type_decl_rules_to_conf
        - write_type_neveraudit_rules_to_conf
        - write_type_permissive_rules_to_conf
        - write_user_decl_rules_to_conf
        - write_xen_devicetree_rules_to_conf
        - write_xen_iomem_rules_to_conf
        - write_xen_ioport_rules_to_conf
        - write_xen_isid_rules_to_conf
        - write_xen_pcidevice_rules_to_conf
        - write_xen_pirq_rules_to_conf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'kernel_to_conf.c:3142,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3147,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3152,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3157,7'
          Dst:             strs_init
        - Src:             'kernel_to_conf.c:3186,7'
          Dst:             constraint_rules_to_strs
        - Src:             'kernel_to_conf.c:3191,7'
          Dst:             validatetrans_rules_to_strs
        - Src:             'kernel_to_conf.c:3196,7'
          Dst:             write_handle_unknown_to_conf
        - Src:             'kernel_to_conf.c:3201,7'
          Dst:             write_class_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3206,7'
          Dst:             write_sid_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3211,7'
          Dst:             write_class_and_common_rules_to_conf
        - Src:             'kernel_to_conf.c:3216,7'
          Dst:             write_default_rules_to_conf
        - Src:             'kernel_to_conf.c:3221,7'
          Dst:             write_mls_rules_to_conf
        - Src:             'kernel_to_conf.c:3226,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3227,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3229,7'
          Dst:             write_polcap_rules_to_conf
        - Src:             'kernel_to_conf.c:3234,7'
          Dst:             write_type_attributes_to_conf
        - Src:             'kernel_to_conf.c:3239,7'
          Dst:             write_role_attributes_to_conf
        - Src:             'kernel_to_conf.c:3244,7'
          Dst:             write_boolean_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3249,7'
          Dst:             write_type_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3254,7'
          Dst:             write_type_alias_rules_to_conf
        - Src:             'kernel_to_conf.c:3259,7'
          Dst:             write_type_bounds_rules_to_conf
        - Src:             'kernel_to_conf.c:3264,7'
          Dst:             write_type_attribute_sets_to_conf
        - Src:             'kernel_to_conf.c:3269,7'
          Dst:             write_type_permissive_rules_to_conf
        - Src:             'kernel_to_conf.c:3274,7'
          Dst:             write_type_neveraudit_rules_to_conf
        - Src:             'kernel_to_conf.c:3279,7'
          Dst:             write_avtab_to_conf
        - Src:             'kernel_to_conf.c:3283,2'
          Dst:             write_filename_trans_rules_to_conf
        - Src:             'kernel_to_conf.c:3286,8'
          Dst:             write_range_trans_rules_to_conf
        - Src:             'kernel_to_conf.c:3292,7'
          Dst:             write_cond_nodes_to_conf
        - Src:             'kernel_to_conf.c:3297,7'
          Dst:             write_role_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3302,7'
          Dst:             write_role_transition_rules_to_conf
        - Src:             'kernel_to_conf.c:3307,7'
          Dst:             write_role_allow_rules_to_conf
        - Src:             'kernel_to_conf.c:3312,7'
          Dst:             write_user_decl_rules_to_conf
        - Src:             'kernel_to_conf.c:3317,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3318,2'
          Dst:             strs_write_each
        - Src:             'kernel_to_conf.c:3320,7'
          Dst:             sort_ocontexts
        - Src:             'kernel_to_conf.c:3326,8'
          Dst:             write_selinux_isid_rules_to_conf
        - Src:             'kernel_to_conf.c:3331,8'
          Dst:             write_selinux_fsuse_rules_to_conf
        - Src:             'kernel_to_conf.c:3336,8'
          Dst:             write_genfscon_rules_to_conf
        - Src:             'kernel_to_conf.c:3341,8'
          Dst:             write_selinux_port_rules_to_conf
        - Src:             'kernel_to_conf.c:3346,8'
          Dst:             write_selinux_netif_rules_to_conf
        - Src:             'kernel_to_conf.c:3351,8'
          Dst:             write_selinux_node_rules_to_conf
        - Src:             'kernel_to_conf.c:3356,8'
          Dst:             write_selinux_node6_rules_to_conf
        - Src:             'kernel_to_conf.c:3361,8'
          Dst:             write_selinux_ibpkey_rules_to_conf
        - Src:             'kernel_to_conf.c:3366,8'
          Dst:             write_selinux_ibendport_rules_to_conf
        - Src:             'kernel_to_conf.c:3371,8'
          Dst:             write_xen_isid_rules_to_conf
        - Src:             'kernel_to_conf.c:3376,8'
          Dst:             write_genfscon_rules_to_conf
        - Src:             'kernel_to_conf.c:3381,8'
          Dst:             write_xen_pirq_rules_to_conf
        - Src:             'kernel_to_conf.c:3386,8'
          Dst:             write_xen_iomem_rules_to_conf
        - Src:             'kernel_to_conf.c:3391,8'
          Dst:             write_xen_ioport_rules_to_conf
        - Src:             'kernel_to_conf.c:3396,8'
          Dst:             write_xen_pcidevice_rules_to_conf
        - Src:             'kernel_to_conf.c:3401,8'
          Dst:             write_xen_devicetree_rules_to_conf
        - Src:             'kernel_to_conf.c:3408,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3409,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:3410,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3411,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:3412,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3413,2'
          Dst:             strs_destroy
        - Src:             'kernel_to_conf.c:3414,2'
          Dst:             strs_free_all
        - Src:             'kernel_to_conf.c:3415,2'
          Dst:             strs_destroy
    - functionName:    populate_decl_roleattributes
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2411
      functionLinenumberEnd: 2436
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          148
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - ebitmap_union
        - hashtab_search
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2418,6'
          Dst:             strcmp
        - Src:             'link.c:2426,30'
          Dst:             hashtab_search
        - Src:             'link.c:2428,2'
          Dst:             __assert_fail
        - Src:             'link.c:2430,6'
          Dst:             ebitmap_union
    - functionName:    find_perm
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1907
      functionLinenumberEnd: 1918
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    debug_requirements
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2017
      functionLinenumberEnd: 2083
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          455
      EdgeCount:       80
      CyclomaticComplexity: 19
      functionsReached:
        - find_perm
        - hashtab_map
        - is_decl_requires_met
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2027,9'
          Dst:             is_decl_requires_met
        - Src:             'link.c:2041,11'
          Dst:             hashtab_map
        - Src:             'link.c:2041,11'
          Dst:             find_perm
    - functionName:    is_decl_requires_met
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1930
      functionLinenumberEnd: 2014
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          425
      EdgeCount:       86
      CyclomaticComplexity: 21
      functionsReached:
        - __assert_fail
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - find_perm
        - hashtab_map
        - hashtab_search
        - is_id_enabled
        - is_perm_existent
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1949,3'
          Dst:             ebitmap_start
        - Src:             'link.c:1949,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:1952,9'
          Dst:             is_id_enabled
        - Src:             'link.c:1949,3'
          Dst:             ebitmap_next
        - Src:             'link.c:1971,8'
          Dst:             is_id_enabled
        - Src:             'link.c:1975,11'
          Dst:             hashtab_search
        - Src:             'link.c:1983,3'
          Dst:             ebitmap_start
        - Src:             'link.c:1983,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:1991,10'
          Dst:             hashtab_map
        - Src:             'link.c:1991,10'
          Dst:             find_perm
        - Src:             'link.c:1994,10'
          Dst:             hashtab_map
        - Src:             'link.c:1994,10'
          Dst:             find_perm
        - Src:             'link.c:1996,5'
          Dst:             __assert_fail
        - Src:             'link.c:2000,4'
          Dst:             __assert_fail
        - Src:             'link.c:2001,9'
          Dst:             is_perm_existent
        - Src:             'link.c:1983,3'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    print_missing_requirements
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2088
      functionLinenumberEnd: 2115
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          220
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - find_perm
        - hashtab_map
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2102,9'
          Dst:             hashtab_map
        - Src:             'link.c:2102,9'
          Dst:             find_perm
    - functionName:    copy_scope_index
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1614
      functionLinenumberEnd: 1661
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          320
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - __assert_fail
        - calloc
        - ebitmap_convert
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1625,3'
          Dst:             ebitmap_start
        - Src:             'link.c:1625,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:1626,4'
          Dst:             __assert_fail
        - Src:             'link.c:1627,8'
          Dst:             ebitmap_set_bit
        - Src:             'link.c:1625,3'
          Dst:             ebitmap_next
        - Src:             'link.c:1642,31'
          Dst:             calloc
        - Src:             'link.c:1652,7'
          Dst:             ebitmap_convert
    - functionName:    ebitmap_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:965,2'
          Dst:             ebitmap_start
        - Src:             'link.c:965,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:966,3'
          Dst:             __assert_fail
        - Src:             'link.c:967,7'
          Dst:             ebitmap_set_bit
        - Src:             'link.c:965,2'
          Dst:             ebitmap_next
    - functionName:    class_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          441
      EdgeCount:       74
      CyclomaticComplexity: 19
      functionsReached:
        - calloc
        - class_copy_default_new_object
        - hashtab_insert
        - hashtab_map
        - hashtab_search
        - permission_copy_callback
        - strdup
        - symtab_destroy
        - symtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:257,14'
          Dst:             hashtab_search
        - Src:             'link.c:265,7'
          Dst:             hashtab_search
        - Src:             'link.c:290,26'
          Dst:             calloc
        - Src:             'link.c:296,8'
          Dst:             symtab_init
        - Src:             'link.c:301,13'
          Dst:             strdup
        - Src:             'link.c:304,5'
          Dst:             symtab_destroy
        - Src:             'link.c:308,10'
          Dst:             hashtab_insert
        - Src:             'link.c:314,5'
          Dst:             symtab_destroy
        - Src:             'link.c:330,8'
          Dst:             class_copy_default_new_object
        - Src:             'link.c:335,6'
          Dst:             hashtab_map
        - Src:             'link.c:335,6'
          Dst:             permission_copy_callback
    - functionName:    role_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         69
      ICount:          500
      EdgeCount:       90
      CyclomaticComplexity: 23
      functionsReached:
        - hashtab_insert
        - hashtab_search
        - role_datum_destroy
        - role_datum_init
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:358,14'
          Dst:             hashtab_search
        - Src:             'link.c:381,17'
          Dst:             strdup
        - Src:             'link.c:389,3'
          Dst:             role_datum_init
        - Src:             'link.c:396,9'
          Dst:             hashtab_insert
        - Src:             'link.c:411,3'
          Dst:             role_datum_init
        - Src:             'link.c:414,17'
          Dst:             strdup
        - Src:             'link.c:417,7'
          Dst:             hashtab_insert
        - Src:             'link.c:429,2'
          Dst:             role_datum_destroy
    - functionName:    type_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          562
      EdgeCount:       101
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:453,14'
          Dst:             hashtab_search
        - Src:             'link.c:478,17'
          Dst:             strdup
        - Src:             'link.c:483,25'
          Dst:             calloc
        - Src:             'link.c:494,9'
          Dst:             hashtab_insert
        - Src:             'link.c:506,19'
          Dst:             calloc
        - Src:             'link.c:513,17'
          Dst:             strdup
        - Src:             'link.c:516,7'
          Dst:             hashtab_insert
    - functionName:    user_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          329
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - hashtab_insert
        - hashtab_search
        - strdup
        - user_datum_destroy
        - user_datum_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:543,14'
          Dst:             hashtab_search
        - Src:             'link.c:548,17'
          Dst:             strdup
        - Src:             'link.c:556,3'
          Dst:             user_datum_init
        - Src:             'link.c:562,9'
          Dst:             hashtab_insert
        - Src:             'link.c:577,3'
          Dst:             user_datum_init
        - Src:             'link.c:579,17'
          Dst:             strdup
        - Src:             'link.c:582,7'
          Dst:             hashtab_insert
        - Src:             'link.c:594,2'
          Dst:             user_datum_destroy
    - functionName:    bool_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          386
      EdgeCount:       62
      CyclomaticComplexity: 16
      functionsReached:
        - cond_destroy_bool
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:611,14'
          Dst:             hashtab_search
        - Src:             'link.c:616,17'
          Dst:             strdup
        - Src:             'link.c:626,9'
          Dst:             hashtab_insert
        - Src:             'link.c:651,10'
          Dst:             hashtab_search
        - Src:             'link.c:665,2'
          Dst:             cond_destroy_bool
    - functionName:    sens_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          278
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:679,15'
          Dst:             hashtab_search
        - Src:             'link.c:682,7'
          Dst:             hashtab_search
    - functionName:    cat_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          276
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:721,13'
          Dst:             hashtab_search
        - Src:             'link.c:723,11'
          Dst:             hashtab_search
    - functionName:    class_copy_default_new_object
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          413
      EdgeCount:       88
      CyclomaticComplexity: 22
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    permission_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          546
      EdgeCount:       90
      CyclomaticComplexity: 22
      functionsReached:
        - calloc
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:138,14'
          Dst:             hashtab_search
        - Src:             'link.c:141,7'
          Dst:             hashtab_search
        - Src:             'link.c:150,13'
          Dst:             strdup
        - Src:             'link.c:157,25'
          Dst:             calloc
        - Src:             'link.c:163,10'
          Dst:             hashtab_insert
        - Src:             'link.c:189,22'
          Dst:             calloc
    - functionName:    copy_range_trans_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          176
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_convert
        - mls_range_convert
        - range_trans_rule_init
        - range_trans_rule_list_destroy
        - type_set_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1472,3'
          Dst:             range_trans_rule_init
        - Src:             'link.c:1477,7'
          Dst:             type_set_convert
        - Src:             'link.c:1481,7'
          Dst:             type_set_convert
        - Src:             'link.c:1485,7'
          Dst:             ebitmap_convert
        - Src:             'link.c:1488,7'
          Dst:             mls_range_convert
        - Src:             'link.c:1495,2'
          Dst:             range_trans_rule_list_destroy
    - functionName:    type_set_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 988
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_convert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:977,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:980,6'
          Dst:             ebitmap_convert
    - functionName:    mls_range_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1080
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_convert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1073,8'
          Dst:             mls_level_convert
        - Src:             'link.c:1076,8'
          Dst:             mls_level_convert
    - functionName:    mls_level_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          247
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - mls_semantic_cat_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1045,2'
          Dst:             __assert_fail
        - Src:             'link.c:1055,3'
          Dst:             mls_semantic_cat_init
        - Src:             'link.c:1060,3'
          Dst:             __assert_fail
        - Src:             'link.c:1062,3'
          Dst:             __assert_fail
    - functionName:    copy_filename_trans_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1419
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          235
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - filename_trans_rule_init
        - strdup
        - type_set_or_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1432,3'
          Dst:             filename_trans_rule_init
        - Src:             'link.c:1440,20'
          Dst:             strdup
        - Src:             'link.c:1444,7'
          Dst:             type_set_or_convert
        - Src:             'link.c:1445,7'
          Dst:             type_set_or_convert
    - functionName:    type_set_or_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - type_set_convert
        - type_set_destroy
        - type_set_init
        - type_set_or_eq
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:998,2'
          Dst:             type_set_init
        - Src:             'link.c:999,6'
          Dst:             type_set_convert
        - Src:             'link.c:1002,6'
          Dst:             type_set_or_eq
        - Src:             'link.c:1005,2'
          Dst:             type_set_destroy
        - Src:             'link.c:1009,2'
          Dst:             type_set_destroy
    - functionName:    copy_cond_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1501
      functionLinenumberEnd: 1564
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          354
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - cond_copy_expr
        - cond_node_destroy
        - copy_avrule_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1518,20'
          Dst:             cond_copy_expr
        - Src:             'link.c:1527,4'
          Dst:             __assert_fail
        - Src:             'link.c:1536,4'
          Dst:             __assert_fail
        - Src:             'link.c:1541,7'
          Dst:             copy_avrule_list
        - Src:             'link.c:1543,10'
          Dst:             copy_avrule_list
        - Src:             'link.c:1560,2'
          Dst:             cond_node_destroy
    - functionName:    copy_avrule_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          447
      EdgeCount:       84
      CyclomaticComplexity: 21
      functionsReached:
        - __assert_fail
        - avrule_destroy
        - avrule_init
        - calloc
        - class_perm_node_init
        - strdup
        - type_set_convert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1242,3'
          Dst:             avrule_init
        - Src:             'link.c:1246,7'
          Dst:             type_set_convert
        - Src:             'link.c:1248,10'
          Dst:             type_set_convert
        - Src:             'link.c:1259,4'
          Dst:             class_perm_node_init
        - Src:             'link.c:1263,4'
          Dst:             __assert_fail
        - Src:             'link.c:1286,5'
          Dst:             __assert_fail
        - Src:             'link.c:1294,23'
          Dst:             calloc
        - Src:             'link.c:1304,32'
          Dst:             strdup
        - Src:             'link.c:1322,2'
          Dst:             avrule_destroy
    - functionName:    copy_role_allow_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1413
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          187
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - role_allow_rule_init
        - role_allow_rule_list_destroy
        - role_set_or_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1391,3'
          Dst:             role_allow_rule_init
        - Src:             'link.c:1393,7'
          Dst:             role_set_or_convert
        - Src:             'link.c:1395,10'
          Dst:             role_set_or_convert
        - Src:             'link.c:1411,2'
          Dst:             role_allow_rule_list_destroy
    - functionName:    role_set_or_convert
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          117
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_convert
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1018,2'
          Dst:             ebitmap_init
        - Src:             'link.c:1019,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:1021,6'
          Dst:             ebitmap_union
        - Src:             'link.c:1025,2'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1029,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_role_trans_list
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1330
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          216
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - ebitmap_convert
        - role_set_or_convert
        - role_trans_rule_init
        - role_trans_rule_list_destroy
        - type_set_or_convert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1344,3'
          Dst:             role_trans_rule_init
        - Src:             'link.c:1346,7'
          Dst:             role_set_or_convert
        - Src:             'link.c:1348,10'
          Dst:             type_set_or_convert
        - Src:             'link.c:1353,7'
          Dst:             ebitmap_convert
        - Src:             'link.c:1369,2'
          Dst:             role_trans_rule_list_destroy
    - functionName:    copy_avrule_decl
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1665
      functionLinenumberEnd: 1706
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          168
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - copy_avrule_list
        - copy_cond_list
        - copy_filename_trans_list
        - copy_identifiers
        - copy_range_trans_list
        - copy_role_allow_list
        - copy_role_trans_list
        - copy_scope_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1669,6'
          Dst:             copy_avrule_list
        - Src:             'link.c:1671,9'
          Dst:             copy_role_trans_list
        - Src:             'link.c:1674,9'
          Dst:             copy_role_allow_list
        - Src:             'link.c:1677,9'
          Dst:             copy_cond_list
        - Src:             'link.c:1682,6'
          Dst:             copy_filename_trans_list
        - Src:             'link.c:1687,6'
          Dst:             copy_range_trans_list
        - Src:             'link.c:1692,8'
          Dst:             copy_identifiers
        - Src:             'link.c:1698,6'
          Dst:             copy_scope_index
        - Src:             'link.c:1700,6'
          Dst:             copy_scope_index
    - functionName:    copy_identifiers
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1570
      functionLinenumberEnd: 1610
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          185
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - alias_copy_callback
        - hashtab_map
        - role_bounds_copy_callback
        - type_bounds_copy_callback
        - user_bounds_copy_callback
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1577,8'
          Dst:             hashtab_map
        - Src:             'link.c:1585,6'
          Dst:             hashtab_map
        - Src:             'link.c:1585,6'
          Dst:             type_bounds_copy_callback
        - Src:             'link.c:1589,6'
          Dst:             hashtab_map
        - Src:             'link.c:1589,6'
          Dst:             alias_copy_callback
        - Src:             'link.c:1593,6'
          Dst:             hashtab_map
        - Src:             'link.c:1593,6'
          Dst:             role_bounds_copy_callback
        - Src:             'link.c:1597,6'
          Dst:             hashtab_map
        - Src:             'link.c:1597,6'
          Dst:             user_bounds_copy_callback
        - Src:             'link.c:1604,7'
          Dst:             hashtab_map
    - functionName:    type_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          204
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:775,9'
          Dst:             hashtab_search
    - functionName:    alias_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         85
      ICount:          645
      EdgeCount:       108
      CyclomaticComplexity: 25
      functionsReached:
        - __assert_fail
        - calloc
        - hashtab_insert
        - hashtab_search
        - strcmp
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:882,16'
          Dst:             hashtab_search
        - Src:             'link.c:889,7'
          Dst:             strcmp
        - Src:             'link.c:897,14'
          Dst:             hashtab_search
        - Src:             'link.c:903,25'
          Dst:             calloc
        - Src:             'link.c:911,17'
          Dst:             strdup
        - Src:             'link.c:914,7'
          Dst:             hashtab_insert
        - Src:             'link.c:927,4'
          Dst:             __assert_fail
        - Src:             'link.c:928,4'
          Dst:             __assert_fail
        - Src:             'link.c:930,4'
          Dst:             __assert_fail
    - functionName:    role_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          204
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:804,9'
          Dst:             hashtab_search
    - functionName:    user_bounds_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          204
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:833,9'
          Dst:             hashtab_search
    - functionName:    role_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1084
      functionLinenumberEnd: 1132
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          281
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - ebitmap_convert
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - hashtab_search
        - type_set_or_convert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1098,14'
          Dst:             hashtab_search
        - Src:             'link.c:1099,2'
          Dst:             __assert_fail
        - Src:             'link.c:1105,2'
          Dst:             ebitmap_init
        - Src:             'link.c:1106,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:1108,6'
          Dst:             ebitmap_union
        - Src:             'link.c:1111,6'
          Dst:             type_set_or_convert
        - Src:             'link.c:1114,2'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1117,3'
          Dst:             ebitmap_init
        - Src:             'link.c:1118,7'
          Dst:             ebitmap_convert
        - Src:             'link.c:1120,7'
          Dst:             ebitmap_union
        - Src:             'link.c:1123,3'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1130,2'
          Dst:             ebitmap_destroy
    - functionName:    type_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1136
      functionLinenumberEnd: 1176
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          251
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - ebitmap_convert
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_union
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1156,13'
          Dst:             hashtab_search
        - Src:             'link.c:1157,2'
          Dst:             __assert_fail
        - Src:             'link.c:1163,2'
          Dst:             ebitmap_init
        - Src:             'link.c:1164,6'
          Dst:             ebitmap_convert
        - Src:             'link.c:1166,6'
          Dst:             ebitmap_union
        - Src:             'link.c:1169,2'
          Dst:             ebitmap_destroy
        - Src:             'link.c:1174,2'
          Dst:             ebitmap_destroy
    - functionName:    user_fix_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          243
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - __assert_fail
        - hashtab_search
        - mls_level_convert
        - mls_range_convert
        - role_set_or_convert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1194,13'
          Dst:             hashtab_search
        - Src:             'link.c:1195,2'
          Dst:             __assert_fail
        - Src:             'link.c:1201,6'
          Dst:             role_set_or_convert
        - Src:             'link.c:1205,6'
          Dst:             mls_range_convert
        - Src:             'link.c:1208,6'
          Dst:             mls_level_convert
    - functionName:    scope_copy_callback
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1773
      functionLinenumberEnd: 1858
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          467
      EdgeCount:       93
      CyclomaticComplexity: 24
      functionsReached:
        - add_i_to_a
        - calloc
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1785,15'
          Dst:             hashtab_search
        - Src:             'link.c:1788,17'
          Dst:             strdup
        - Src:             'link.c:1793,26'
          Dst:             calloc
        - Src:             'link.c:1797,9'
          Dst:             hashtab_insert
        - Src:             'link.c:1816,8'
          Dst:             add_i_to_a
        - Src:             'link.c:1828,8'
          Dst:             add_i_to_a
        - Src:             'link.c:1846,8'
          Dst:             add_i_to_a
    - functionName:    copy_avrule_block
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1710
      functionLinenumberEnd: 1769
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          356
      EdgeCount:       60
      CyclomaticComplexity: 15
      functionsReached:
        - avrule_block_create
        - avrule_block_list_destroy
        - avrule_decl_create
        - avrule_decl_destroy
        - copy_avrule_decl
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1711,30'
          Dst:             avrule_block_create
        - Src:             'link.c:1725,7'
          Dst:             avrule_decl_create
        - Src:             'link.c:1733,28'
          Dst:             strdup
        - Src:             'link.c:1736,5'
          Dst:             avrule_decl_destroy
        - Src:             'link.c:1754,9'
          Dst:             copy_avrule_decl
        - Src:             'link.c:1756,4'
          Dst:             avrule_decl_destroy
        - Src:             'link.c:1767,2'
          Dst:             avrule_block_list_destroy
    - functionName:    cond_normalize
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2220
      functionLinenumberEnd: 2234
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          83
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - cond_normalize_expr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2227,9'
          Dst:             cond_normalize_expr
    - functionName:    policy_module_destroy
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          103
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expand_role_attributes
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2353
      functionLinenumberEnd: 2403
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          278
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - ebitmap_union
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2364,6'
          Dst:             strcmp
        - Src:             'link.c:2376,2'
          Dst:             ebitmap_start
        - Src:             'link.c:2376,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'link.c:2383,7'
          Dst:             ebitmap_set_bit
        - Src:             'link.c:2392,7'
          Dst:             ebitmap_union
        - Src:             'link.c:2376,2'
          Dst:             ebitmap_next
    - functionName:    populate_roleattributes
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2439
      functionLinenumberEnd: 2463
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          144
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - hashtab_map
        - populate_decl_roleattributes
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2457,7'
          Dst:             hashtab_map
        - Src:             'link.c:2457,7'
          Dst:             populate_decl_roleattributes
    - functionName:    enable_avrules
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2133
      functionLinenumberEnd: 2212
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          453
      EdgeCount:       99
      CyclomaticComplexity: 24
      functionsReached:
        - debug_requirements
        - is_decl_requires_met
        - print_missing_requirements
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2172,9'
          Dst:             is_decl_requires_met
        - Src:             'link.c:2181,6'
          Dst:             print_missing_requirements
        - Src:             'link.c:2210,3'
          Dst:             debug_requirements
    - functionName:    copy_module
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1864
      functionLinenumberEnd: 1895
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - copy_avrule_block
        - copy_identifiers
        - hashtab_map
        - scope_copy_callback
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:1871,8'
          Dst:             copy_identifiers
        - Src:             'link.c:1878,9'
          Dst:             copy_avrule_block
        - Src:             'link.c:1887,7'
          Dst:             hashtab_map
        - Src:             'link.c:1887,7'
          Dst:             scope_copy_callback
    - functionName:    prepare_base
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2294
      functionLinenumberEnd: 2349
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         53
      ICount:          373
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - calloc
        - cond_normalize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2296,2'
          Dst:             __assert_fail
        - Src:             'link.c:2318,7'
          Dst:             calloc
        - Src:             'link.c:2324,28'
          Dst:             calloc
        - Src:             'link.c:2343,6'
          Dst:             cond_normalize
    - functionName:    prepare_module
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2238
      functionLinenumberEnd: 2291
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         69
      ICount:          444
      EdgeCount:       88
      CyclomaticComplexity: 21
      functionsReached:
        - calloc
        - cond_normalize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2247,21'
          Dst:             calloc
        - Src:             'link.c:2257,7'
          Dst:             calloc
        - Src:             'link.c:2262,7'
          Dst:             calloc
        - Src:             'link.c:2277,28'
          Dst:             calloc
        - Src:             'link.c:2284,6'
          Dst:             cond_normalize
    - functionName:    link_modules
      functionSourceFile: '/src/selinux/libsepol/src/link.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2472
      functionLinenumberEnd: 2585
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         124
      ICount:          805
      EdgeCount:       161
      CyclomaticComplexity: 39
      functionsReached:
        - calloc
        - copy_module
        - enable_avrules
        - expand_role_attributes
        - hashtab_map
        - policy_module_destroy
        - policydb_index_classes
        - policydb_index_others
        - populate_roleattributes
        - prepare_base
        - prepare_module
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'link.c:2492,28'
          Dst:             calloc
        - Src:             'link.c:2520,28'
          Dst:             calloc
        - Src:             'link.c:2527,7'
          Dst:             prepare_module
        - Src:             'link.c:2532,6'
          Dst:             prepare_base
        - Src:             'link.c:2539,9'
          Dst:             copy_module
        - Src:             'link.c:2547,6'
          Dst:             policydb_index_classes
        - Src:             'link.c:2551,6'
          Dst:             policydb_index_others
        - Src:             'link.c:2556,6'
          Dst:             enable_avrules
        - Src:             'link.c:2567,6'
          Dst:             populate_roleattributes
        - Src:             'link.c:2573,6'
          Dst:             hashtab_map
        - Src:             'link.c:2573,6'
          Dst:             expand_role_attributes
        - Src:             'link.c:2580,3'
          Dst:             policy_module_destroy
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    mls_range_glblub
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          176
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_and
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:65,6'
          Dst:             ebitmap_and
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:69,6'
          Dst:             ebitmap_and
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_semantic_range_cpy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mls_semantic_level_cpy
        - mls_semantic_level_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:806,6'
          Dst:             mls_semantic_level_cpy
        - Src:             'mls.c:809,6'
          Dst:             mls_semantic_level_cpy
        - Src:             'mls.c:810,3'
          Dst:             mls_semantic_level_destroy
    - functionName:    mls_semantic_level_cpy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          95
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mls_semantic_cat_init
        - mls_semantic_level_destroy
        - mls_semantic_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:763,2'
          Dst:             mls_semantic_level_init
        - Src:             'mls.c:772,3'
          Dst:             mls_semantic_cat_init
        - Src:             'mls.c:787,2'
          Dst:             mls_semantic_level_destroy
    - functionName:    mls_semantic_level_destroy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mls_semantic_cat_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:752,3'
          Dst:             mls_semantic_cat_destroy
    - functionName:    mls_semantic_cat_destroy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_semantic_level_init
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_semantic_cat_init
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_semantic_range_destroy
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_semantic_level_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:799,2'
          Dst:             mls_semantic_level_destroy
        - Src:             'mls.c:800,2'
          Dst:             mls_semantic_level_destroy
    - functionName:    mls_semantic_range_init
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_semantic_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:793,2'
          Dst:             mls_semantic_level_init
        - Src:             'mls.c:794,2'
          Dst:             mls_semantic_level_init
    - functionName:    sepol_mls_check
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - context_destroy
        - context_init
        - mls_from_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:717,2'
          Dst:             context_init
        - Src:             'mls.c:719,8'
          Dst:             mls_from_string
        - Src:             'mls.c:720,2'
          Dst:             context_destroy
    - functionName:    context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_from_string
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          205
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - mls_context_to_sid
        - strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:83,14'
          Dst:             strdup
        - Src:             'mls.c:88,6'
          Dst:             mls_context_to_sid
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    mls_context_to_sid
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          471
      EdgeCount:       110
      CyclomaticComplexity: 30
      functionsReached:
        - ebitmap_set_bit
        - hashtab_search
        - mls_level_cpy
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:357,25'
          Dst:             hashtab_search
        - Src:             'mls.c:376,19'
          Dst:             strchr
        - Src:             'mls.c:382,25'
          Dst:             hashtab_search
        - Src:             'mls.c:389,9'
          Dst:             ebitmap_set_bit
        - Src:             'mls.c:399,10'
          Dst:             hashtab_search
        - Src:             'mls.c:412,11'
          Dst:             ebitmap_set_bit
        - Src:             'mls.c:438,7'
          Dst:             mls_level_cpy
    - functionName:    sepol_mls_contains
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          236
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - context_destroy
        - context_init
        - mls_from_string
        - mls_level_dom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:679,2'
          Dst:             context_init
        - Src:             'mls.c:680,2'
          Dst:             context_init
        - Src:             'mls.c:682,6'
          Dst:             mls_from_string
        - Src:             'mls.c:685,6'
          Dst:             mls_from_string
        - Src:             'mls.c:688,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:688,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:689,2'
          Dst:             context_destroy
        - Src:             'mls.c:690,2'
          Dst:             context_destroy
        - Src:             'mls.c:696,2'
          Dst:             context_destroy
        - Src:             'mls.c:697,2'
          Dst:             context_destroy
    - functionName:    mls_level_dom
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_contains
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:109,36'
          Dst:             ebitmap_contains
    - functionName:    mls_scopy_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:481,8'
          Dst:             ebitmap_cpy
    - functionName:    mls_copy_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:461,8'
          Dst:             ebitmap_cpy
    - functionName:    mls_context_glblub
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_glblub
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:97,9'
          Dst:             mls_range_glblub
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    mls_context_cpy_high
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:83,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:88,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:90,3'
          Dst:             ebitmap_destroy
    - functionName:    mls_context_cpy_low
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:63,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:68,7'
          Dst:             ebitmap_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:70,3'
          Dst:             ebitmap_destroy
    - functionName:    mls_range_set
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:500,8'
          Dst:             ebitmap_cpy
    - functionName:    mls_compute_sid
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          232
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_search
        - mls_context_cpy
        - mls_context_cpy_high
        - mls_context_cpy_low
        - mls_context_glblub
        - mls_copy_context
        - mls_range_set
        - mls_scopy_context
      functionUses:    1
      BranchProfiles:
        - Branch String:   'mls.c:617,2'
          Branch Sides:    []
        - Branch String:   'mls.c:633,3'
          Branch Sides:    []
      Callsites:
        - Src:             'mls.c:623,7'
          Dst:             hashtab_search
        - Src:             'mls.c:625,11'
          Dst:             mls_range_set
        - Src:             'mls.c:635,11'
          Dst:             mls_context_cpy_low
        - Src:             'mls.c:637,11'
          Dst:             mls_context_cpy_high
        - Src:             'mls.c:639,11'
          Dst:             mls_context_cpy
        - Src:             'mls.c:641,11'
          Dst:             mls_context_cpy_low
        - Src:             'mls.c:643,11'
          Dst:             mls_context_cpy_high
        - Src:             'mls.c:645,11'
          Dst:             mls_context_cpy
        - Src:             'mls.c:647,11'
          Dst:             mls_context_glblub
        - Src:             'mls.c:654,11'
          Dst:             mls_copy_context
        - Src:             'mls.c:657,11'
          Dst:             mls_scopy_context
        - Src:             'mls.c:660,10'
          Dst:             mls_context_cpy_low
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_convert_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          222
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_destroy
        - ebitmap_init
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_set_bit
        - ebitmap_start
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:566,25'
          Dst:             hashtab_search
        - Src:             'mls.c:579,3'
          Dst:             ebitmap_init
        - Src:             'mls.c:580,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:580,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:584,24'
          Dst:             hashtab_search
        - Src:             'mls.c:591,9'
          Dst:             ebitmap_set_bit
        - Src:             'mls.c:580,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:596,3'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_setup_user_range
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          189
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - mls_level_dom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:522,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:522,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:524,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:524,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:526,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:526,14'
          Dst:             mls_level_dom
        - Src:             'mls.c:536,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:538,14'
          Dst:             mls_level_dom
    - functionName:    mls_context_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          331
      EdgeCount:       67
      CyclomaticComplexity: 20
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - hashtab_search
        - mls_level_dom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:275,7'
          Dst:             mls_level_dom
        - Src:             'mls.c:288,32'
          Dst:             hashtab_search
        - Src:             'mls.c:292,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:292,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:295,9'
          Dst:             ebitmap_get_bit
        - Src:             'mls.c:292,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:313,20'
          Dst:             mls_level_dom
        - Src:             'mls.c:313,20'
          Dst:             mls_level_dom
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_sid_to_context
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          357
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - mls_level_eq
        - strcpy
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:186,3'
          Dst:             strcpy
        - Src:             'mls.c:190,7'
          Dst:             strlen
        - Src:             'mls.c:194,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:195,8'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:206,5'
          Dst:             strcpy
        - Src:             'mls.c:209,9'
          Dst:             strlen
        - Src:             'mls.c:218,6'
          Dst:             strcpy
        - Src:             'mls.c:222,10'
          Dst:             strlen
        - Src:             'mls.c:194,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:235,4'
          Dst:             strcpy
        - Src:             'mls.c:236,17'
          Dst:             strlen
        - Src:             'mls.c:240,8'
          Dst:             mls_level_eq
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_compute_context_len
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          255
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - mls_level_eq
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:123,7'
          Dst:             strlen
        - Src:             'mls.c:127,3'
          Dst:             ebitmap_start
        - Src:             'mls.c:128,8'
          Dst:             ebitmap_node_get_bit
        - Src:             'mls.c:135,9'
          Dst:             strlen
        - Src:             'mls.c:140,10'
          Dst:             strlen
        - Src:             'mls.c:127,3'
          Dst:             ebitmap_next
        - Src:             'mls.c:148,11'
          Dst:             strlen
        - Src:             'mls.c:151,8'
          Dst:             mls_level_eq
    - functionName:    mls_to_string
      functionSourceFile: '/src/selinux/libsepol/src/mls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          135
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - mls_compute_context_len
        - mls_sid_to_context
        - strcpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'mls.c:50,12'
          Dst:             mls_compute_context_len
        - Src:             'mls.c:61,2'
          Dst:             mls_sid_to_context
        - Src:             'mls.c:63,2'
          Dst:             strcpy
    - functionName:    type_vec_contains
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_type_attr
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_cond_rule_redundant
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          198
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - process_avtab_datum
        - type_vec_contains
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:289,8'
          Dst:             type_vec_contains
        - Src:             'optimize.c:291,8'
          Dst:             type_vec_contains
        - Src:             'optimize.c:294,7'
          Dst:             process_avtab_datum
    - functionName:    process_avtab_datum
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          257
      EdgeCount:       46
      CyclomaticComplexity: 15
      functionsReached:
        - process_xperms
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:182,12'
          Dst:             process_xperms
        - Src:             'optimize.c:191,12'
          Dst:             process_xperms
        - Src:             'optimize.c:196,11'
          Dst:             process_xperms
    - functionName:    process_xperms
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_avrule_with_attr
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - is_type_attr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:258,9'
          Dst:             is_type_attr
        - Src:             'optimize.c:258,35'
          Dst:             is_type_attr
    - functionName:    optimize_cond_av_list
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          153
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - is_avrule_redundant
        - is_avrule_with_attr
        - is_cond_rule_redundant
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:341,7'
          Dst:             is_avrule_with_attr
        - Src:             'optimize.c:365,7'
          Dst:             is_avrule_redundant
        - Src:             'optimize.c:366,7'
          Dst:             is_cond_rule_redundant
    - functionName:    is_avrule_redundant
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          204
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - avtab_search
        - process_avtab_datum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:237,9'
          Dst:             avtab_search
        - Src:             'optimize.c:241,8'
          Dst:             process_avtab_datum
    - functionName:    type_vec_destroy
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_vec_append
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - reallocarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:63,25'
          Dst:             reallocarray
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_vec_init
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:48,13'
          Dst:             calloc
    - functionName:    destroy_type_map
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - type_vec_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:147,3'
          Dst:             type_vec_destroy
    - functionName:    optimize_cond_avtab
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          225
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - cond_node_destroy
        - optimize_cond_av_list
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:389,3'
          Dst:             optimize_cond_av_list
        - Src:             'optimize.c:390,3'
          Dst:             optimize_cond_av_list
        - Src:             'optimize.c:398,4'
          Dst:             cond_node_destroy
    - functionName:    optimize_avtab
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - is_avrule_redundant
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:309,8'
          Dst:             is_avrule_redundant
    - functionName:    build_type_map
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          293
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - calloc
        - ebitmap_contains
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - type_vec_append
        - type_vec_destroy
        - type_vec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:100,25'
          Dst:             calloc
        - Src:             'optimize.c:105,7'
          Dst:             type_vec_init
        - Src:             'optimize.c:112,4'
          Dst:             ebitmap_start
        - Src:             'optimize.c:112,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'optimize.c:114,9'
          Dst:             type_vec_append
        - Src:             'optimize.c:112,4'
          Dst:             ebitmap_next
        - Src:             'optimize.c:128,9'
          Dst:             ebitmap_contains
        - Src:             'optimize.c:129,10'
          Dst:             type_vec_append
        - Src:             'optimize.c:138,3'
          Dst:             type_vec_destroy
    - functionName:    policydb_optimize
      functionSourceFile: '/src/selinux/libsepol/src/optimize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - build_type_map
        - destroy_type_map
        - optimize_avtab
        - optimize_cond_avtab
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'optimize.c:463,13'
          Dst:             build_type_map
        - Src:             'optimize.c:467,2'
          Dst:             optimize_avtab
        - Src:             'optimize.c:468,2'
          Dst:             optimize_cond_avtab
        - Src:             'optimize.c:470,2'
          Dst:             destroy_type_map
    - functionName:    sepol_polcap_getname
      functionSourceFile: '/src/selinux/libsepol/src/polcaps.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_polcap_getnum
      functionSourceFile: '/src/selinux/libsepol/src/polcaps.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcasecmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'polcaps.c:32,7'
          Dst:             strcasecmp
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_read_and_validate
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2069
      functionLinenumberEnd: 2098
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          281
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - context_destroy
        - mls_read_range_helper
        - next_entry
        - policydb_context_isvalid
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2073,7'
          Dst:             next_entry
        - Src:             'policydb.c:2085,7'
          Dst:             mls_read_range_helper
        - Src:             'policydb.c:2092,7'
          Dst:             policydb_context_isvalid
        - Src:             'policydb.c:2094,3'
          Dst:             context_destroy
    - functionName:    mls_read_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1900
      functionLinenumberEnd: 1949
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          413
      EdgeCount:       81
      CyclomaticComplexity: 20
      functionsReached:
        - ebitmap_cpy
        - ebitmap_destroy
        - ebitmap_read
        - next_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1904,7'
          Dst:             next_entry
        - Src:             'policydb.c:1914,7'
          Dst:             next_entry
        - Src:             'policydb.c:1925,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1931,8'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1937,8'
          Dst:             ebitmap_cpy
        - Src:             'policydb.c:1948,2'
          Dst:             ebitmap_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    ocontext_read_xen
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2883
      functionLinenumberEnd: 2984
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          476
      EdgeCount:       90
      CyclomaticComplexity: 24
      functionsReached:
        - calloc
        - context_read_and_validate
        - next_entry
        - str_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb.c:2905,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:2891,8'
          Dst:             next_entry
        - Src:             'policydb.c:2897,8'
          Dst:             calloc
        - Src:             'policydb.c:2907,10'
          Dst:             next_entry
        - Src:             'policydb.c:2913,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2918,10'
          Dst:             next_entry
        - Src:             'policydb.c:2922,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2927,10'
          Dst:             next_entry
        - Src:             'policydb.c:2932,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2939,11'
          Dst:             next_entry
        - Src:             'policydb.c:2945,11'
          Dst:             next_entry
        - Src:             'policydb.c:2951,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2956,10'
          Dst:             next_entry
        - Src:             'policydb.c:2960,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:2965,10'
          Dst:             next_entry
        - Src:             'policydb.c:2969,10'
          Dst:             str_read
        - Src:             'policydb.c:2972,9'
          Dst:             context_read_and_validate
    - functionName:    ocontext_read_selinux
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2987
      functionLinenumberEnd: 3154
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         106
      ICount:          710
      EdgeCount:       142
      CyclomaticComplexity: 38
      functionsReached:
        - calloc
        - context_read_and_validate
        - next_entry
        - str_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb.c:3011,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:2995,8'
          Dst:             next_entry
        - Src:             'policydb.c:3001,8'
          Dst:             calloc
        - Src:             'policydb.c:3013,10'
          Dst:             next_entry
        - Src:             'policydb.c:3019,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3025,10'
          Dst:             next_entry
        - Src:             'policydb.c:3032,10'
          Dst:             str_read
        - Src:             'policydb.c:3036,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3039,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3046,10'
          Dst:             next_entry
        - Src:             'policydb.c:3064,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3072,10'
          Dst:             next_entry
        - Src:             'policydb.c:3083,10'
          Dst:             str_read
        - Src:             'policydb.c:3088,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3094,10'
          Dst:             next_entry
        - Src:             'policydb.c:3100,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3105,10'
          Dst:             next_entry
        - Src:             'policydb.c:3110,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3115,10'
          Dst:             next_entry
        - Src:             'policydb.c:3121,10'
          Dst:             str_read
        - Src:             'policydb.c:3125,9'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3132,10'
          Dst:             next_entry
        - Src:             'policydb.c:3141,9'
          Dst:             context_read_and_validate
    - functionName:    scope_index_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3900
      functionLinenumberEnd: 3932
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          163
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - calloc
        - ebitmap_read
        - exceeds_available_bytes
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3906,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3910,7'
          Dst:             next_entry
        - Src:             'policydb.c:3915,6'
          Dst:             exceeds_available_bytes
        - Src:             'policydb.c:3922,7'
          Dst:             calloc
        - Src:             'policydb.c:3927,7'
          Dst:             ebitmap_read
    - functionName:    exceeds_available_bytes
      functionSourceFile: '/src/selinux/libsepol/src/./private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    range_trans_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3858
      functionLinenumberEnd: 3896
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          140
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - ebitmap_read
        - mls_read_semantic_range_helper
        - next_entry
        - range_trans_rule_init
        - type_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3864,7'
          Dst:             next_entry
        - Src:             'policydb.c:3873,3'
          Dst:             range_trans_rule_init
        - Src:             'policydb.c:3880,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3883,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3886,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3889,7'
          Dst:             mls_read_semantic_range_helper
    - functionName:    range_trans_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 763
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - mls_semantic_range_init
        - type_set_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:764,2'
          Dst:             type_set_init
        - Src:             'policydb.c:765,2'
          Dst:             type_set_init
        - Src:             'policydb.c:766,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:767,2'
          Dst:             mls_semantic_range_init
    - functionName:    type_set_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1878
      functionLinenumberEnd: 1893
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_read
        - next_entry
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1882,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1884,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1887,7'
          Dst:             next_entry
    - functionName:    mls_read_semantic_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2006
      functionLinenumberEnd: 2016
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_read_semantic_level_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2009,7'
          Dst:             mls_read_semantic_level_helper
        - Src:             'policydb.c:2013,7'
          Dst:             mls_read_semantic_level_helper
    - functionName:    mls_read_semantic_level_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1958
      functionLinenumberEnd: 1998
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          259
      EdgeCount:       49
      CyclomaticComplexity: 12
      functionsReached:
        - mls_semantic_cat_init
        - mls_semantic_level_init
        - next_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1964,2'
          Dst:             mls_semantic_level_init
        - Src:             'policydb.c:1966,7'
          Dst:             next_entry
        - Src:             'policydb.c:1981,3'
          Dst:             mls_semantic_cat_init
        - Src:             'policydb.c:1985,8'
          Dst:             next_entry
    - functionName:    type_set_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:550,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:551,2'
          Dst:             ebitmap_init
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    filename_trans_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3799
      functionLinenumberEnd: 3854
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          213
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - filename_trans_rule_init
        - next_entry
        - str_read
        - type_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3805,7'
          Dst:             next_entry
        - Src:             'policydb.c:3815,3'
          Dst:             filename_trans_rule_init
        - Src:             'policydb.c:3823,8'
          Dst:             next_entry
        - Src:             'policydb.c:3829,8'
          Dst:             str_read
        - Src:             'policydb.c:3833,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3836,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3844,8'
          Dst:             next_entry
    - functionName:    filename_trans_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:715,2'
          Dst:             type_set_init
        - Src:             'policydb.c:716,2'
          Dst:             type_set_init
    - functionName:    role_allow_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3762
      functionLinenumberEnd: 3795
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - next_entry
        - role_allow_rule_init
        - role_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3768,7'
          Dst:             next_entry
        - Src:             'policydb.c:3778,3'
          Dst:             role_allow_rule_init
        - Src:             'policydb.c:3786,7'
          Dst:             role_set_read
        - Src:             'policydb.c:3789,7'
          Dst:             role_set_read
    - functionName:    role_allow_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 744
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - role_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:742,2'
          Dst:             role_set_init
        - Src:             'policydb.c:743,2'
          Dst:             role_set_init
    - functionName:    role_set_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1863
      functionLinenumberEnd: 1875
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_read
        - next_entry
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1867,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:1869,7'
          Dst:             next_entry
    - functionName:    role_set_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:565,2'
          Dst:             ebitmap_init
    - functionName:    role_trans_rule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3711
      functionLinenumberEnd: 3759
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          189
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_read
        - ebitmap_set_bit
        - next_entry
        - role_set_read
        - role_trans_rule_init
        - type_set_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3717,7'
          Dst:             next_entry
        - Src:             'policydb.c:3727,3'
          Dst:             role_trans_rule_init
        - Src:             'policydb.c:3735,7'
          Dst:             role_set_read
        - Src:             'policydb.c:3738,7'
          Dst:             type_set_read
        - Src:             'policydb.c:3742,8'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3747,8'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3751,8'
          Dst:             next_entry
    - functionName:    role_trans_rule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - role_set_init
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:688,2'
          Dst:             role_set_init
        - Src:             'policydb.c:689,2'
          Dst:             type_set_init
        - Src:             'policydb.c:690,2'
          Dst:             ebitmap_init
    - functionName:    avrule_decl_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3936
      functionLinenumberEnd: 3982
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          273
      EdgeCount:       60
      CyclomaticComplexity: 18
      functionsReached:
        - avrule_read_list
        - cond_read_list
        - filename_trans_rule_read
        - next_entry
        - range_trans_rule_read
        - role_allow_rule_read
        - role_trans_rule_read
        - scope_index_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3941,7'
          Dst:             next_entry
        - Src:             'policydb.c:3946,6'
          Dst:             cond_read_list
        - Src:             'policydb.c:3947,6'
          Dst:             avrule_read_list
        - Src:             'policydb.c:3948,6'
          Dst:             role_trans_rule_read
        - Src:             'policydb.c:3949,6'
          Dst:             role_allow_rule_read
        - Src:             'policydb.c:3954,6'
          Dst:             filename_trans_rule_read
        - Src:             'policydb.c:3958,6'
          Dst:             range_trans_rule_read
        - Src:             'policydb.c:3961,6'
          Dst:             scope_index_read
        - Src:             'policydb.c:3962,6'
          Dst:             scope_index_read
        - Src:             'policydb.c:3967,8'
          Dst:             next_entry
    - functionName:    avrule_read_list
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3678
      functionLinenumberEnd: 3707
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - avrule_read
        - next_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3686,7'
          Dst:             next_entry
        - Src:             'policydb.c:3693,9'
          Dst:             avrule_read
    - functionName:    common_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2143
      functionLinenumberEnd: 2186
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          157
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - common_destroy
        - hashtab_insert
        - next_entry
        - perm_read
        - str_read
        - symtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2151,13'
          Dst:             calloc
        - Src:             'policydb.c:2155,7'
          Dst:             next_entry
        - Src:             'policydb.c:2160,7'
          Dst:             str_read
        - Src:             'policydb.c:2166,6'
          Dst:             symtab_init
        - Src:             'policydb.c:2174,7'
          Dst:             perm_read
        - Src:             'policydb.c:2178,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2184,2'
          Dst:             common_destroy
    - functionName:    class_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2284
      functionLinenumberEnd: 2382
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          526
      EdgeCount:       114
      CyclomaticComplexity: 33
      functionsReached:
        - calloc
        - class_destroy
        - hashtab_insert
        - hashtab_search
        - next_entry
        - perm_read
        - read_cons_helper
        - str_read
        - symtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2292,31'
          Dst:             calloc
        - Src:             'policydb.c:2296,7'
          Dst:             next_entry
        - Src:             'policydb.c:2301,7'
          Dst:             str_read
        - Src:             'policydb.c:2310,6'
          Dst:             symtab_init
        - Src:             'policydb.c:2320,8'
          Dst:             str_read
        - Src:             'policydb.c:2324,24'
          Dst:             hashtab_search
        - Src:             'policydb.c:2332,7'
          Dst:             perm_read
        - Src:             'policydb.c:2336,6'
          Dst:             read_cons_helper
        - Src:             'policydb.c:2344,8'
          Dst:             next_entry
        - Src:             'policydb.c:2348,7'
          Dst:             read_cons_helper
        - Src:             'policydb.c:2356,8'
          Dst:             next_entry
        - Src:             'policydb.c:2368,8'
          Dst:             next_entry
        - Src:             'policydb.c:2374,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2380,2'
          Dst:             class_destroy
    - functionName:    role_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2385
      functionLinenumberEnd: 2454
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          381
      EdgeCount:       89
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - ebitmap_read
        - hashtab_insert
        - next_entry
        - role_destroy
        - str_read
        - strcmp
        - type_set_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2392,9'
          Dst:             calloc
        - Src:             'policydb.c:2399,7'
          Dst:             next_entry
        - Src:             'policydb.c:2404,7'
          Dst:             str_read
        - Src:             'policydb.c:2412,6'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2416,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2419,7'
          Dst:             type_set_read
        - Src:             'policydb.c:2425,8'
          Dst:             next_entry
        - Src:             'policydb.c:2431,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2435,6'
          Dst:             strcmp
        - Src:             'policydb.c:2439,4'
          Dst:             role_destroy
        - Src:             'policydb.c:2442,3'
          Dst:             role_destroy
        - Src:             'policydb.c:2446,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2452,2'
          Dst:             role_destroy
    - functionName:    type_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2457
      functionLinenumberEnd: 2543
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         87
      ICount:          506
      EdgeCount:       117
      CyclomaticComplexity: 32
      functionsReached:
        - calloc
        - ebitmap_read
        - hashtab_insert
        - next_entry
        - str_read
        - type_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2465,13'
          Dst:             calloc
        - Src:             'policydb.c:2483,7'
          Dst:             next_entry
        - Src:             'policydb.c:2527,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2531,7'
          Dst:             str_read
        - Src:             'policydb.c:2535,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2541,2'
          Dst:             type_destroy
    - functionName:    user_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3309
      functionLinenumberEnd: 3386
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         89
      ICount:          464
      EdgeCount:       123
      CyclomaticComplexity: 36
      functionsReached:
        - calloc
        - ebitmap_read
        - hashtab_insert
        - mls_level_to_semantic
        - mls_range_to_semantic
        - mls_read_level
        - mls_read_range_helper
        - mls_read_semantic_level_helper
        - mls_read_semantic_range_helper
        - next_entry
        - role_set_read
        - str_read
        - user_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3316,13'
          Dst:             calloc
        - Src:             'policydb.c:3323,7'
          Dst:             next_entry
        - Src:             'policydb.c:3328,7'
          Dst:             str_read
        - Src:             'policydb.c:3337,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:3340,7'
          Dst:             role_set_read
        - Src:             'policydb.c:3356,7'
          Dst:             mls_read_range_helper
        - Src:             'policydb.c:3358,7'
          Dst:             mls_read_level
        - Src:             'policydb.c:3361,8'
          Dst:             mls_range_to_semantic
        - Src:             'policydb.c:3364,8'
          Dst:             mls_level_to_semantic
        - Src:             'policydb.c:3372,7'
          Dst:             mls_read_semantic_range_helper
        - Src:             'policydb.c:3374,7'
          Dst:             mls_read_semantic_level_helper
        - Src:             'policydb.c:3378,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3384,2'
          Dst:             user_destroy
    - functionName:    sens_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3391
      functionLinenumberEnd: 3425
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - hashtab_insert
        - level_datum_init
        - mls_read_level
        - next_entry
        - sens_destroy
        - str_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3400,2'
          Dst:             level_datum_init
        - Src:             'policydb.c:3402,7'
          Dst:             next_entry
        - Src:             'policydb.c:3407,7'
          Dst:             str_read
        - Src:             'policydb.c:3414,26'
          Dst:             mls_read_level
        - Src:             'policydb.c:3417,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3423,2'
          Dst:             sens_destroy
    - functionName:    cat_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3430
      functionLinenumberEnd: 3461
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - cat_datum_init
        - cat_destroy
        - hashtab_insert
        - next_entry
        - str_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3439,2'
          Dst:             cat_datum_init
        - Src:             'policydb.c:3441,7'
          Dst:             next_entry
        - Src:             'policydb.c:3446,7'
          Dst:             str_read
        - Src:             'policydb.c:3453,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3459,2'
          Dst:             cat_destroy
    - functionName:    cat_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cat_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1449
      functionLinenumberEnd: 1454
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cat_datum_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1452,2'
          Dst:             cat_datum_destroy
    - functionName:    cat_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    level_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_read_level
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3285
      functionLinenumberEnd: 3306
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          156
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_read
        - mls_level_init
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3289,2'
          Dst:             mls_level_init
        - Src:             'policydb.c:3291,7'
          Dst:             next_entry
        - Src:             'policydb.c:3298,6'
          Dst:             ebitmap_read
    - functionName:    sens_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1432
      functionLinenumberEnd: 1444
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - level_datum_destroy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1439,3'
          Dst:             mls_level_destroy
        - Src:             'policydb.c:1442,2'
          Dst:             level_datum_destroy
    - functionName:    level_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_range_to_semantic
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2053
      functionLinenumberEnd: 2061
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_to_semantic
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2054,6'
          Dst:             mls_level_to_semantic
        - Src:             'policydb.c:2057,6'
          Dst:             mls_level_to_semantic
    - functionName:    mls_level_to_semantic
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2019
      functionLinenumberEnd: 2050
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          139
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - mls_semantic_cat_init
        - mls_semantic_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2024,2'
          Dst:             mls_semantic_level_init
        - Src:             'policydb.c:2026,2'
          Dst:             ebitmap_start
        - Src:             'policydb.c:2027,7'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb.c:2035,4'
          Dst:             mls_semantic_cat_init
        - Src:             'policydb.c:2026,2'
          Dst:             ebitmap_next
    - functionName:    user_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1423
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - user_datum_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1425,2'
          Dst:             user_datum_destroy
    - functionName:    user_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_destroy
        - mls_range_destroy
        - mls_semantic_level_destroy
        - mls_semantic_range_destroy
        - role_set_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:619,3'
          Dst:             role_set_destroy
        - Src:             'policydb.c:620,3'
          Dst:             mls_semantic_range_destroy
        - Src:             'policydb.c:621,3'
          Dst:             mls_semantic_level_destroy
        - Src:             'policydb.c:622,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:623,3'
          Dst:             mls_range_destroy
        - Src:             'policydb.c:624,3'
          Dst:             mls_level_destroy
    - functionName:    role_set_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_destroy
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:570,2'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1418
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - type_datum_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1416,2'
          Dst:             type_datum_destroy
    - functionName:    type_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:601,3'
          Dst:             ebitmap_destroy
    - functionName:    role_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1405
      functionLinenumberEnd: 1409
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - role_datum_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1407,2'
          Dst:             role_datum_destroy
    - functionName:    role_datum_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - type_set_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:585,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:586,3'
          Dst:             type_set_destroy
        - Src:             'policydb.c:587,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:588,3'
          Dst:             ebitmap_destroy
    - functionName:    type_set_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:557,3'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:558,3'
          Dst:             ebitmap_destroy
    - functionName:    perm_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2109
      functionLinenumberEnd: 2140
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - hashtab_insert
        - next_entry
        - perm_destroy
        - str_read
        - value_isvalid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2116,13'
          Dst:             calloc
        - Src:             'policydb.c:2120,7'
          Dst:             next_entry
        - Src:             'policydb.c:2125,5'
          Dst:             str_read
        - Src:             'policydb.c:2129,7'
          Dst:             value_isvalid
        - Src:             'policydb.c:2132,6'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2138,2'
          Dst:             perm_destroy
    - functionName:    read_cons_helper
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2191
      functionLinenumberEnd: 2281
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          385
      EdgeCount:       87
      CyclomaticComplexity: 23
      functionsReached:
        - calloc
        - constraint_expr_init
        - ebitmap_read
        - next_entry
        - type_set_read
      functionUses:    2
      BranchProfiles:
        - Branch String:   'policydb.c:2238,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:2201,7'
          Dst:             calloc
        - Src:             'policydb.c:2210,8'
          Dst:             next_entry
        - Src:             'policydb.c:2221,8'
          Dst:             constraint_expr_init
        - Src:             'policydb.c:2231,9'
          Dst:             next_entry
        - Src:             'policydb.c:2260,9'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2263,9'
          Dst:             type_set_read
        - Src:             'policydb.c:2267,7'
          Dst:             type_set_read
    - functionName:    class_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1401
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - constraint_expr_destroy
        - hashtab_destroy
        - hashtab_map
        - perm_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1379,8'
          Dst:             hashtab_map
        - Src:             'policydb.c:1379,8'
          Dst:             perm_destroy
        - Src:             'policydb.c:1380,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1383,3'
          Dst:             constraint_expr_destroy
        - Src:             'policydb.c:1391,3'
          Dst:             constraint_expr_destroy
    - functionName:    perm_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1346
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    common_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_destroy
        - hashtab_map
        - perm_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1361,8'
          Dst:             hashtab_map
        - Src:             'policydb.c:1361,8'
          Dst:             perm_destroy
        - Src:             'policydb.c:1362,2'
          Dst:             hashtab_destroy
    - functionName:    avrule_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3471
      functionLinenumberEnd: 3578
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         97
      ICount:          607
      EdgeCount:       123
      CyclomaticComplexity: 28
      functionsReached:
        - avrule_destroy
        - avrule_init
        - calloc
        - class_perm_node_init
        - next_entry
        - type_set_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   ''
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:3482,2'
          Dst:             avrule_init
        - Src:             'policydb.c:3484,7'
          Dst:             next_entry
        - Src:             'policydb.c:3491,6'
          Dst:             type_set_read
        - Src:             'policydb.c:3494,6'
          Dst:             type_set_read
        - Src:             'policydb.c:3497,7'
          Dst:             next_entry
        - Src:             'policydb.c:3506,3'
          Dst:             class_perm_node_init
        - Src:             'policydb.c:3508,8'
          Dst:             next_entry
        - Src:             'policydb.c:3546,20'
          Dst:             calloc
        - Src:             'policydb.c:3550,8'
          Dst:             next_entry
        - Src:             'policydb.c:3556,8'
          Dst:             next_entry
        - Src:             'policydb.c:3562,8'
          Dst:             next_entry
        - Src:             'policydb.c:3574,3'
          Dst:             avrule_destroy
    - functionName:    avrule_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - type_set_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:659,2'
          Dst:             type_set_init
        - Src:             'policydb.c:660,2'
          Dst:             type_set_init
    - functionName:    class_perm_node_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 654
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avrule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - type_set_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:670,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:671,2'
          Dst:             type_set_destroy
    - functionName:    filename_trans_check_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2742
      functionLinenumberEnd: 2768
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          80
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_destroy
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_match_any
        - ebitmap_set_bit
        - ebitmap_union
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2746,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:2747,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:2750,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb.c:2753,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:2756,7'
          Dst:             ebitmap_match_any
        - Src:             'policydb.c:2759,7'
          Dst:             ebitmap_union
        - Src:             'policydb.c:2766,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:2767,2'
          Dst:             ebitmap_destroy
    - functionName:    filename_trans_read_one
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2772
      functionLinenumberEnd: 2852
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          252
      EdgeCount:       48
      CyclomaticComplexity: 15
      functionsReached:
        - ebitmap_cardinality
        - ebitmap_destroy
        - ebitmap_read
        - filename_trans_check_datum
        - hashtab_insert
        - next_entry
        - str_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2780,7'
          Dst:             next_entry
        - Src:             'policydb.c:2785,7'
          Dst:             str_read
        - Src:             'policydb.c:2789,7'
          Dst:             next_entry
        - Src:             'policydb.c:2809,8'
          Dst:             ebitmap_read
        - Src:             'policydb.c:2813,8'
          Dst:             next_entry
        - Src:             'policydb.c:2819,30'
          Dst:             ebitmap_cardinality
        - Src:             'policydb.c:2824,20'
          Dst:             filename_trans_check_datum
        - Src:             'policydb.c:2835,7'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2848,3'
          Dst:             ebitmap_destroy
    - functionName:    filename_trans_read_one_compat
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2696
      functionLinenumberEnd: 2739
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          123
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - next_entry
        - policydb_filetrans_insert
        - str_read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2701,7'
          Dst:             next_entry
        - Src:             'policydb.c:2706,7'
          Dst:             str_read
        - Src:             'policydb.c:2710,7'
          Dst:             next_entry
        - Src:             'policydb.c:2722,7'
          Dst:             policydb_filetrans_insert
    - functionName:    policydb_filetrans_insert
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2624
      functionLinenumberEnd: 2693
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          233
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_init
        - ebitmap_set_bit
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2633,10'
          Dst:             hashtab_search
        - Src:             'policydb.c:2635,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb.c:2650,3'
          Dst:             ebitmap_init
        - Src:             'policydb.c:2663,16'
          Dst:             strdup
        - Src:             'policydb.c:2681,8'
          Dst:             hashtab_insert
        - Src:             'policydb.c:2692,9'
          Dst:             ebitmap_set_bit
    - functionName:    cat_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1156
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          91
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1164,8'
          Dst:             value_isvalid
    - functionName:    sens_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1153
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          94
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1145,8'
          Dst:             value_isvalid
    - functionName:    user_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1119
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1126,7'
          Dst:             value_isvalid
    - functionName:    type_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1099
      functionLinenumberEnd: 1116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          103
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1107,8'
          Dst:             value_isvalid
    - functionName:    role_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1082
      functionLinenumberEnd: 1096
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1088,7'
          Dst:             value_isvalid
    - functionName:    partial_name_hash
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_sort_ocontexts
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4573
      functionLinenumberEnd: 4574
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sort_ocontexts
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4574,9'
          Dst:             sort_ocontexts
    - functionName:    policy_file_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4556
      functionLinenumberEnd: 4558
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_reindex_users
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4527
      functionLinenumberEnd: 4553
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          146
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - hashtab_map
        - policydb_user_cache
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4536,6'
          Dst:             calloc
        - Src:             'policydb.c:4541,6'
          Dst:             calloc
        - Src:             'policydb.c:4545,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:4549,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:4549,6'
          Dst:             policydb_user_cache
    - functionName:    policydb_user_cache
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1036
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_destroy
        - mls_level_destroy
        - mls_range_destroy
        - mls_semantic_level_expand
        - mls_semantic_range_expand
        - role_set_expand
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1012,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1013,6'
          Dst:             role_set_expand
        - Src:             'policydb.c:1022,3'
          Dst:             mls_range_destroy
        - Src:             'policydb.c:1023,7'
          Dst:             mls_semantic_range_expand
        - Src:             'policydb.c:1028,3'
          Dst:             mls_level_destroy
        - Src:             'policydb.c:1029,7'
          Dst:             mls_semantic_level_expand
    - functionName:    common_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1049
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1055,7'
          Dst:             value_isvalid
    - functionName:    class_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1079
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          92
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1071,7'
          Dst:             value_isvalid
    - functionName:    range_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3581
      functionLinenumberEnd: 3674
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          378
      EdgeCount:       78
      CyclomaticComplexity: 24
      functionsReached:
        - calloc
        - ebitmap_set_bit
        - hashtab_insert
        - mls_range_destroy
        - mls_range_to_semantic
        - mls_read_range_helper
        - next_entry
        - range_trans_rule_destroy
        - range_trans_rule_init
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3591,7'
          Dst:             next_entry
        - Src:             'policydb.c:3596,8'
          Dst:             calloc
        - Src:             'policydb.c:3599,8'
          Dst:             next_entry
        - Src:             'policydb.c:3603,8'
          Dst:             value_isvalid
        - Src:             'policydb.c:3606,8'
          Dst:             value_isvalid
        - Src:             'policydb.c:3609,9'
          Dst:             next_entry
        - Src:             'policydb.c:3615,8'
          Dst:             value_isvalid
        - Src:             'policydb.c:3617,7'
          Dst:             calloc
        - Src:             'policydb.c:3620,7'
          Dst:             mls_read_range_helper
        - Src:             'policydb.c:3624,9'
          Dst:             hashtab_insert
        - Src:             'policydb.c:3636,3'
          Dst:             range_trans_rule_init
        - Src:             'policydb.c:3638,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3641,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3644,7'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:3647,7'
          Dst:             mls_range_to_semantic
        - Src:             'policydb.c:3666,3'
          Dst:             mls_range_destroy
        - Src:             'policydb.c:3670,3'
          Dst:             range_trans_rule_destroy
    - functionName:    range_trans_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 777
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_destroy
        - mls_semantic_range_destroy
        - type_set_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:773,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:774,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:775,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:776,2'
          Dst:             mls_semantic_range_destroy
    - functionName:    genfs_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3174
      functionLinenumberEnd: 3278
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         84
      ICount:          553
      EdgeCount:       112
      CyclomaticComplexity: 30
      functionsReached:
        - calloc
        - context_destroy
        - context_read_and_validate
        - next_entry
        - str_read
        - strcmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3182,7'
          Dst:             next_entry
        - Src:             'policydb.c:3188,8'
          Dst:             next_entry
        - Src:             'policydb.c:3192,14'
          Dst:             calloc
        - Src:             'policydb.c:3196,8'
          Dst:             str_read
        - Src:             'policydb.c:3205,8'
          Dst:             strcmp
        - Src:             'policydb.c:3212,8'
          Dst:             strcmp
        - Src:             'policydb.c:3220,8'
          Dst:             next_entry
        - Src:             'policydb.c:3225,11'
          Dst:             calloc
        - Src:             'policydb.c:3229,9'
          Dst:             next_entry
        - Src:             'policydb.c:3233,9'
          Dst:             str_read
        - Src:             'policydb.c:3237,9'
          Dst:             next_entry
        - Src:             'policydb.c:3241,8'
          Dst:             context_read_and_validate
        - Src:             'policydb.c:3245,10'
          Dst:             strcmp
        - Src:             'policydb.c:3253,11'
          Dst:             strlen
        - Src:             'policydb.c:3254,12'
          Dst:             strlen
        - Src:             'policydb.c:3272,3'
          Dst:             context_destroy
        - Src:             'policydb.c:3273,3'
          Dst:             context_destroy
    - functionName:    ocontext_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3158
      functionLinenumberEnd: 3170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - ocontext_read_selinux
        - ocontext_read_xen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb.c:3160,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:3162,8'
          Dst:             ocontext_read_selinux
        - Src:             'policydb.c:3165,8'
          Dst:             ocontext_read_xen
    - functionName:    policydb_string_to_av_perm
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4143
      functionLinenumberEnd: 4168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - hashtab_search
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4152,4'
          Dst:             hashtab_search
        - Src:             'policydb.c:4161,4'
          Dst:             hashtab_search
    - functionName:    policydb_index_decls
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          260
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1243,6'
          Dst:             calloc
        - Src:             'policydb.c:1251,9'
          Dst:             value_isvalid
    - functionName:    scope_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4063
      functionLinenumberEnd: 4124
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          310
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - calloc
        - exceeds_available_bytes
        - hashtab_insert
        - hashtab_search
        - next_entry
        - scope_destroy
        - str_read
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4072,7'
          Dst:             next_entry
        - Src:             'policydb.c:4077,7'
          Dst:             str_read
        - Src:             'policydb.c:4082,6'
          Dst:             hashtab_search
        - Src:             'policydb.c:4086,15'
          Dst:             calloc
        - Src:             'policydb.c:4089,7'
          Dst:             next_entry
        - Src:             'policydb.c:4095,6'
          Dst:             exceeds_available_bytes
        - Src:             'policydb.c:4100,7'
          Dst:             calloc
        - Src:             'policydb.c:4103,7'
          Dst:             next_entry
        - Src:             'policydb.c:4110,6'
          Dst:             strcmp
        - Src:             'policydb.c:4112,3'
          Dst:             scope_destroy
        - Src:             'policydb.c:4114,7'
          Dst:             hashtab_insert
        - Src:             'policydb.c:4122,2'
          Dst:             scope_destroy
    - functionName:    scope_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1650
      functionLinenumberEnd: 1657
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avrule_block_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3988
      functionLinenumberEnd: 4060
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          250
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - avrule_block_destroy
        - avrule_decl_create
        - avrule_decl_destroy
        - avrule_decl_read
        - calloc
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:3993,2'
          Dst:             __assert_fail
        - Src:             'policydb.c:3995,7'
          Dst:             next_entry
        - Src:             'policydb.c:4003,19'
          Dst:             calloc
        - Src:             'policydb.c:4006,8'
          Dst:             next_entry
        - Src:             'policydb.c:4017,19'
          Dst:             avrule_decl_create
        - Src:             'policydb.c:4018,5'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4021,8'
          Dst:             avrule_decl_read
        - Src:             'policydb.c:4023,5'
          Dst:             avrule_decl_destroy
        - Src:             'policydb.c:4024,5'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4030,6'
          Dst:             avrule_decl_destroy
        - Src:             'policydb.c:4031,6'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4041,5'
          Dst:             __assert_fail
        - Src:             'policydb.c:4051,4'
          Dst:             __assert_fail
    - functionName:    filename_trans_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2855
      functionLinenumberEnd: 2879
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - filename_trans_read_one
        - filename_trans_read_one_compat
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2860,7'
          Dst:             next_entry
        - Src:             'policydb.c:2867,9'
          Dst:             filename_trans_read_one_compat
        - Src:             'policydb.c:2873,9'
          Dst:             filename_trans_read_one
    - functionName:    role_allow_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2589
      functionLinenumberEnd: 2618
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          113
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2595,7'
          Dst:             next_entry
        - Src:             'policydb.c:2601,8'
          Dst:             calloc
        - Src:             'policydb.c:2610,8'
          Dst:             next_entry
    - functionName:    role_trans_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2546
      functionLinenumberEnd: 2586
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:2555,7'
          Dst:             next_entry
        - Src:             'policydb.c:2561,8'
          Dst:             calloc
        - Src:             'policydb.c:2570,8'
          Dst:             next_entry
        - Src:             'policydb.c:2577,9'
          Dst:             next_entry
    - functionName:    policydb_string_to_security_class
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4129
      functionLinenumberEnd: 4137
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_search
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:4132,17'
          Dst:             hashtab_search
    - functionName:    policydb_set_target_platform
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4561
      functionLinenumberEnd: 4570
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_read
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4176
      functionLinenumberEnd: 4524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         371
      ICount:          2194
      EdgeCount:       493
      CyclomaticComplexity: 124
      functionsReached:
        - __assert_fail
        - avrule_block_destroy
        - avrule_block_read
        - avtab_read
        - calloc
        - cond_read_list
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_read
        - ebitmap_set_bit
        - ebitmap_start
        - exceeds_available_bytes
        - filename_trans_read
        - genfs_read
        - next_entry
        - ocontext_read
        - policydb_index_classes
        - policydb_index_decls
        - policydb_index_others
        - policydb_lookup_compat
        - policydb_set_target_platform
        - policydb_string_to_av_perm
        - policydb_string_to_security_class
        - policydb_validate
        - range_read
        - role_allow_read
        - role_trans_read
        - scope_read
        - str_read
        - strcmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'policydb.c:4396,2'
          Branch Sides:    []
        - Branch String:   'policydb.c:4451,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb.c:4188,7'
          Dst:             next_entry
        - Src:             'policydb.c:4217,7'
          Dst:             next_entry
        - Src:             'policydb.c:4227,9'
          Dst:             strcmp
        - Src:             'policydb.c:4229,5'
          Dst:             policydb_set_target_platform
        - Src:             'policydb.c:4241,7'
          Dst:             strcmp
        - Src:             'policydb.c:4259,7'
          Dst:             next_entry
        - Src:             'policydb.c:4299,3'
          Dst:             __assert_fail
        - Src:             'policydb.c:4317,9'
          Dst:             policydb_lookup_compat
        - Src:             'policydb.c:4336,13'
          Dst:             next_entry
        - Src:             'policydb.c:4340,8'
          Dst:             str_read
        - Src:             'policydb.c:4344,13'
          Dst:             next_entry
        - Src:             'policydb.c:4348,8'
          Dst:             str_read
        - Src:             'policydb.c:4359,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4365,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4371,7'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4376,8'
          Dst:             next_entry
        - Src:             'policydb.c:4381,7'
          Dst:             exceeds_available_bytes
        - Src:             'policydb.c:4398,22'
          Dst:             policydb_string_to_security_class
        - Src:             'policydb.c:4399,18'
          Dst:             policydb_string_to_security_class
        - Src:             'policydb.c:4402,22'
          Dst:             policydb_string_to_security_class
        - Src:             'policydb.c:4409,7'
          Dst:             avtab_read
        - Src:             'policydb.c:4412,8'
          Dst:             cond_read_list
        - Src:             'policydb.c:4414,7'
          Dst:             role_trans_read
        - Src:             'policydb.c:4416,7'
          Dst:             role_allow_read
        - Src:             'policydb.c:4419,7'
          Dst:             filename_trans_read
        - Src:             'policydb.c:4423,3'
          Dst:             avrule_block_destroy
        - Src:             'policydb.c:4425,7'
          Dst:             avrule_block_read
        - Src:             'policydb.c:4433,14'
          Dst:             next_entry
        - Src:             'policydb.c:4438,9'
          Dst:             scope_read
        - Src:             'policydb.c:4445,6'
          Dst:             policydb_index_decls
        - Src:             'policydb.c:4448,6'
          Dst:             policydb_index_classes
        - Src:             'policydb.c:4455,22'
          Dst:             policydb_string_to_av_perm
        - Src:             'policydb.c:4458,4'
          Dst:             policydb_string_to_av_perm
        - Src:             'policydb.c:4465,6'
          Dst:             policydb_index_others
        - Src:             'policydb.c:4468,6'
          Dst:             ocontext_read
        - Src:             'policydb.c:4472,6'
          Dst:             genfs_read
        - Src:             'policydb.c:4481,7'
          Dst:             range_read
        - Src:             'policydb.c:4487,22'
          Dst:             calloc
        - Src:             'policydb.c:4488,22'
          Dst:             calloc
        - Src:             'policydb.c:4493,9'
          Dst:             ebitmap_read
        - Src:             'policydb.c:4495,5'
          Dst:             ebitmap_start
        - Src:             'policydb.c:4495,5'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb.c:4503,10'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:4495,5'
          Dst:             ebitmap_next
        - Src:             'policydb.c:4509,36'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:4512,9'
          Dst:             ebitmap_set_bit
        - Src:             'policydb.c:4518,6'
          Dst:             policydb_validate
    - functionName:    policydb_lookup_compat
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_index_classes
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1211
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          128
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - class_index
        - common_index
        - hashtab_map
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1188,6'
          Dst:             calloc
        - Src:             'policydb.c:1192,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1192,6'
          Dst:             common_index
        - Src:             'policydb.c:1197,6'
          Dst:             calloc
        - Src:             'policydb.c:1203,6'
          Dst:             calloc
        - Src:             'policydb.c:1207,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1207,6'
          Dst:             class_index
    - functionName:    policydb_index_others
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1272
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          444
      EdgeCount:       75
      CyclomaticComplexity: 20
      functionsReached:
        - calloc
        - cond_init_bool_indexes
        - hashtab_map
        - policydb_role_cache
        - policydb_user_cache
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1296,6'
          Dst:             calloc
        - Src:             'policydb.c:1302,6'
          Dst:             calloc
        - Src:             'policydb.c:1308,6'
          Dst:             calloc
        - Src:             'policydb.c:1312,6'
          Dst:             cond_init_bool_indexes
        - Src:             'policydb.c:1320,8'
          Dst:             calloc
        - Src:             'policydb.c:1323,8'
          Dst:             hashtab_map
        - Src:             'policydb.c:1329,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1329,6'
          Dst:             policydb_role_cache
        - Src:             'policydb.c:1332,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1332,6'
          Dst:             policydb_user_cache
    - functionName:    policydb_role_cache
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1000
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - type_set_expand
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:994,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:995,6'
          Dst:             type_set_expand
    - functionName:    type_set_or
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1814
      functionLinenumberEnd: 1828
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_or
        - type_set_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1815,2'
          Dst:             type_set_init
        - Src:             'policydb.c:1817,6'
          Dst:             ebitmap_or
        - Src:             'policydb.c:1820,6'
          Dst:             ebitmap_or
    - functionName:    type_set_or_eq
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1844
      functionLinenumberEnd: 1855
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - type_set_cpy
        - type_set_destroy
        - type_set_or
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1848,6'
          Dst:             type_set_or
        - Src:             'policydb.c:1850,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:1851,8'
          Dst:             type_set_cpy
        - Src:             'policydb.c:1852,2'
          Dst:             type_set_destroy
    - functionName:    type_set_cpy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1831
      functionLinenumberEnd: 1841
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_cpy
        - type_set_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1832,2'
          Dst:             type_set_init
        - Src:             'policydb.c:1835,6'
          Dst:             ebitmap_cpy
        - Src:             'policydb.c:1837,6'
          Dst:             ebitmap_cpy
    - functionName:    symtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1710
      functionLinenumberEnd: 1811
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          406
      EdgeCount:       86
      CyclomaticComplexity: 24
      functionsReached:
        - __assert_fail
        - add_i_to_a
        - hashtab_insert
        - hashtab_search
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1721,7'
          Dst:             hashtab_insert
        - Src:             'policydb.c:1736,24'
          Dst:             hashtab_search
        - Src:             'policydb.c:1738,24'
          Dst:             strdup
        - Src:             'policydb.c:1749,8'
          Dst:             hashtab_insert
        - Src:             'policydb.c:1768,6'
          Dst:             hashtab_search
        - Src:             'policydb.c:1770,4'
          Dst:             __assert_fail
        - Src:             'policydb.c:1791,6'
          Dst:             add_i_to_a
    - functionName:    policydb_load_isids
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1665
      functionLinenumberEnd: 1682
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - sepol_sidtab_init
        - sepol_sidtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1668,6'
          Dst:             sepol_sidtab_init
        - Src:             'policydb.c:1675,7'
          Dst:             sepol_sidtab_insert
    - functionName:    range_tr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1481
      functionLinenumberEnd: 1487
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1484,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1485,2'
          Dst:             ebitmap_destroy
    - functionName:    filenametr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1464
      functionLinenumberEnd: 1476
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1472,3'
          Dst:             ebitmap_destroy
    - functionName:    ocontext_xen_free
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1513
      functionLinenumberEnd: 1529
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1522,4'
          Dst:             context_destroy
        - Src:             'policydb.c:1523,4'
          Dst:             context_destroy
    - functionName:    ocontext_selinux_free
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1491
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          115
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1500,4'
          Dst:             context_destroy
        - Src:             'policydb.c:1501,4'
          Dst:             context_destroy
    - functionName:    symtabs_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1640
      functionLinenumberEnd: 1646
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_destroy
        - hashtab_map
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1643,9'
          Dst:             hashtab_map
        - Src:             'policydb.c:1644,3'
          Dst:             hashtab_destroy
    - functionName:    policydb_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1535
      functionLinenumberEnd: 1637
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         75
      ICount:          478
      EdgeCount:       97
      CyclomaticComplexity: 24
      functionsReached:
        - avrule_block_list_destroy
        - avtab_destroy
        - cond_policydb_destroy
        - context_destroy
        - ebitmap_destroy
        - filenametr_destroy
        - hashtab_destroy
        - hashtab_map
        - ocontext_selinux_free
        - ocontext_xen_free
        - range_tr_destroy
        - scope_destroy
        - symtabs_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1545,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1547,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1549,2'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1551,2'
          Dst:             symtabs_destroy
        - Src:             'policydb.c:1569,9'
          Dst:             hashtab_map
        - Src:             'policydb.c:1569,9'
          Dst:             scope_destroy
        - Src:             'policydb.c:1570,3'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1572,2'
          Dst:             avrule_block_list_destroy
        - Src:             'policydb.c:1576,2'
          Dst:             avtab_destroy
        - Src:             'policydb.c:1579,3'
          Dst:             ocontext_selinux_free
        - Src:             'policydb.c:1581,3'
          Dst:             ocontext_xen_free
        - Src:             'policydb.c:1590,4'
          Dst:             context_destroy
        - Src:             'policydb.c:1598,2'
          Dst:             cond_policydb_destroy
        - Src:             'policydb.c:1616,2'
          Dst:             hashtab_map
        - Src:             'policydb.c:1616,2'
          Dst:             filenametr_destroy
        - Src:             'policydb.c:1617,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1619,2'
          Dst:             hashtab_map
        - Src:             'policydb.c:1619,2'
          Dst:             range_tr_destroy
        - Src:             'policydb.c:1620,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:1624,4'
          Dst:             ebitmap_destroy
        - Src:             'policydb.c:1631,4'
          Dst:             ebitmap_destroy
    - functionName:    policydb_index_bools
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1214
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - cond_index_bool
        - cond_init_bool_indexes
        - hashtab_map
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:1216,6'
          Dst:             cond_init_bool_indexes
        - Src:             'policydb.c:1219,6'
          Dst:             calloc
        - Src:             'policydb.c:1222,6'
          Dst:             hashtab_map
        - Src:             'policydb.c:1222,6'
          Dst:             cond_index_bool
    - functionName:    rangetr_cmp
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          105
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rangetr_hash
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    filenametr_cmp
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:883,9'
          Dst:             strcmp
    - functionName:    filenametr_hash
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 865
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - partial_name_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:864,10'
          Dst:             partial_name_hash
    - functionName:    roles_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - strdup
        - symtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:816,9'
          Dst:             calloc
        - Src:             'policydb.c:821,8'
          Dst:             strdup
        - Src:             'policydb.c:826,7'
          Dst:             symtab_insert
    - functionName:    policydb_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          242
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - avrule_block_create
        - avrule_block_list_destroy
        - avrule_decl_create
        - avtab_init
        - cond_policydb_init
        - ebitmap_init
        - filenametr_cmp
        - filenametr_hash
        - hashtab_create
        - hashtab_destroy
        - rangetr_cmp
        - rangetr_hash
        - roles_init
        - symtab_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:925,8'
          Dst:             symtab_init
        - Src:             'policydb.c:932,7'
          Dst:             symtab_init
        - Src:             'policydb.c:936,19'
          Dst:             avrule_block_create
        - Src:             'policydb.c:937,32'
          Dst:             avrule_decl_create
        - Src:             'policydb.c:942,7'
          Dst:             avtab_init
        - Src:             'policydb.c:946,7'
          Dst:             roles_init
        - Src:             'policydb.c:950,7'
          Dst:             cond_policydb_init
        - Src:             'policydb.c:954,22'
          Dst:             hashtab_create
        - Src:             'policydb.c:954,22'
          Dst:             filenametr_hash
        - Src:             'policydb.c:954,22'
          Dst:             filenametr_cmp
        - Src:             'policydb.c:960,16'
          Dst:             hashtab_create
        - Src:             'policydb.c:960,16'
          Dst:             rangetr_hash
        - Src:             'policydb.c:960,16'
          Dst:             rangetr_cmp
        - Src:             'policydb.c:966,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:967,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:968,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:974,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:975,2'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:977,3'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:978,3'
          Dst:             hashtab_destroy
        - Src:             'policydb.c:980,2'
          Dst:             avrule_block_list_destroy
    - functionName:    avrule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 790
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - avrule_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:800,3'
          Dst:             avrule_destroy
    - functionName:    range_trans_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - range_trans_rule_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:783,3'
          Dst:             range_trans_rule_destroy
    - functionName:    role_allow_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - role_allow_rule_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:756,3'
          Dst:             role_allow_rule_destroy
    - functionName:    role_allow_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - role_set_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:748,2'
          Dst:             role_set_destroy
        - Src:             'policydb.c:749,2'
          Dst:             role_set_destroy
    - functionName:    filename_trans_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - type_set_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:723,2'
          Dst:             type_set_destroy
        - Src:             'policydb.c:724,2'
          Dst:             type_set_destroy
    - functionName:    filename_trans_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - filename_trans_rule_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:733,3'
          Dst:             filename_trans_rule_destroy
    - functionName:    role_trans_rule_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - role_set_destroy
        - type_set_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:696,3'
          Dst:             role_set_destroy
        - Src:             'policydb.c:697,3'
          Dst:             type_set_destroy
        - Src:             'policydb.c:698,3'
          Dst:             ebitmap_destroy
    - functionName:    role_trans_rule_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - role_trans_rule_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:706,3'
          Dst:             role_trans_rule_destroy
    - functionName:    user_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - mls_level_init
        - mls_range_init
        - mls_semantic_level_init
        - mls_semantic_range_init
        - role_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:608,2'
          Dst:             role_set_init
        - Src:             'policydb.c:609,2'
          Dst:             mls_semantic_range_init
        - Src:             'policydb.c:610,2'
          Dst:             mls_semantic_level_init
        - Src:             'policydb.c:611,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:612,2'
          Dst:             mls_range_init
        - Src:             'policydb.c:613,2'
          Dst:             mls_level_init
    - functionName:    type_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:595,2'
          Dst:             ebitmap_init
    - functionName:    role_datum_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ebitmap_init
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb.c:576,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:577,2'
          Dst:             type_set_init
        - Src:             'policydb.c:578,2'
          Dst:             ebitmap_init
        - Src:             'policydb.c:579,2'
          Dst:             ebitmap_init
    - functionName:    validate_range_transition
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1623
      functionLinenumberEnd: 1643
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - validate_mls_range
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1629,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1631,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1633,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1636,6'
          Dst:             validate_mls_range
    - functionName:    validate_value
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          56
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_get_bit
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:110,6'
          Dst:             ebitmap_get_bit
    - functionName:    validate_mls_range
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - validate_mls_level
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:714,6'
          Dst:             validate_mls_level
        - Src:             'policydb_validate.c:716,6'
          Dst:             validate_mls_level
    - functionName:    validate_mls_level
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - validate_ebitmap
        - validate_value
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:668,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:670,6'
          Dst:             validate_ebitmap
    - functionName:    validate_ebitmap
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_highest_set_bit
        - ebitmap_match_any
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:121,33'
          Dst:             ebitmap_highest_set_bit
        - Src:             'policydb_validate.c:123,6'
          Dst:             ebitmap_match_any
    - functionName:    validate_bool_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 3
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:761,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:769,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:758,6'
          Dst:             validate_value
    - functionName:    validate_level_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          164
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_cmp
        - hashtab_search
        - validate_mls_level
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:684,6'
          Dst:             validate_mls_level
        - Src:             'policydb_validate.c:690,51'
          Dst:             hashtab_search
        - Src:             'policydb_validate.c:694,8'
          Dst:             ebitmap_cmp
    - functionName:    validate_user_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          233
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - validate_mls_level
        - validate_mls_range
        - validate_mls_semantic_level
        - validate_mls_semantic_range
        - validate_role_set
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:727,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:729,6'
          Dst:             validate_role_set
        - Src:             'policydb_validate.c:731,6'
          Dst:             validate_mls_semantic_range
        - Src:             'policydb_validate.c:733,6'
          Dst:             validate_mls_semantic_level
        - Src:             'policydb_validate.c:735,48'
          Dst:             validate_mls_range
        - Src:             'policydb_validate.c:737,48'
          Dst:             validate_mls_level
        - Src:             'policydb_validate.c:739,22'
          Dst:             validate_value
    - functionName:    validate_role_set
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - validate_ebitmap
      functionUses:    4
      BranchProfiles:
        - Branch String:   'policydb_validate.c:174,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:171,6'
          Dst:             validate_ebitmap
    - functionName:    validate_mls_semantic_range
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - validate_mls_semantic_level
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:655,6'
          Dst:             validate_mls_semantic_level
        - Src:             'policydb_validate.c:657,6'
          Dst:             validate_mls_semantic_level
    - functionName:    validate_mls_semantic_level
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - validate_mls_semantic_cat
        - validate_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:642,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:644,6'
          Dst:             validate_mls_semantic_cat
    - functionName:    validate_mls_semantic_cat
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:624,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:626,7'
          Dst:             validate_value
    - functionName:    validate_type_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          241
      EdgeCount:       55
      CyclomaticComplexity: 10
      functionsReached:
        - validate_ebitmap
        - validate_simpletype
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:576,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:594,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:571,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:573,23'
          Dst:             validate_value
        - Src:             'policydb_validate.c:581,23'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:585,7'
          Dst:             validate_ebitmap
    - functionName:    validate_simpletype
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - validate_value
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:553,6'
          Dst:             validate_value
    - functionName:    validate_role_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          173
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - validate_ebitmap
        - validate_type_set
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:527,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:516,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:518,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:520,6'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:522,22'
          Dst:             validate_value
        - Src:             'policydb_validate.c:524,6'
          Dst:             validate_ebitmap
    - functionName:    validate_type_set
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - validate_ebitmap
      functionUses:    9
      BranchProfiles:
        - Branch String:   'policydb_validate.c:139,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:134,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:136,6'
          Dst:             validate_ebitmap
    - functionName:    validate_empty_type_set
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_constraint_nodes
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         142
      ICount:          661
      EdgeCount:       174
      CyclomaticComplexity: 34
      functionsReached:
        - validate_ebitmap
        - validate_empty_type_set
        - validate_type_set
      functionUses:    2
      BranchProfiles:
        - Branch String:   'policydb_validate.c:273,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:281,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:315,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:329,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:344,5'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:269,10'
          Dst:             validate_empty_type_set
        - Src:             'policydb_validate.c:285,10'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:291,10'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:297,10'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:299,10'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:312,9'
          Dst:             validate_empty_type_set
        - Src:             'policydb_validate.c:365,9'
          Dst:             validate_empty_type_set
    - functionName:    validate_class_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          371
      EdgeCount:       81
      CyclomaticComplexity: 12
      functionsReached:
        - validate_common_datum
        - validate_constraint_nodes
        - validate_permission_symtab
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:459,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:468,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:477,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:486,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:442,37'
          Dst:             validate_value
        - Src:             'policydb_validate.c:444,25'
          Dst:             validate_common_datum
        - Src:             'policydb_validate.c:452,6'
          Dst:             validate_permission_symtab
        - Src:             'policydb_validate.c:454,6'
          Dst:             validate_constraint_nodes
        - Src:             'policydb_validate.c:456,6'
          Dst:             validate_constraint_nodes
    - functionName:    validate_common_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          142
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - validate_permission_symtab
        - validate_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:417,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:423,6'
          Dst:             validate_permission_symtab
    - functionName:    validate_permission_symtab
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - perm_visit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:405,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:405,6'
          Dst:             perm_visit
    - functionName:    perm_visit
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:386,7'
          Dst:             value_isvalid
        - Src:             'policydb_validate.c:389,37'
          Dst:             value_isvalid
    - functionName:    value_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_bool_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_bool_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:788,9'
          Dst:             validate_bool_datum
    - functionName:    validate_level_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_level_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:709,9'
          Dst:             validate_level_datum
    - functionName:    validate_user_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_user_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:753,9'
          Dst:             validate_user_datum
    - functionName:    validate_type_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_type_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:618,9'
          Dst:             validate_type_datum
    - functionName:    validate_role_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_role_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:546,9'
          Dst:             validate_role_datum
    - functionName:    validate_class_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_class_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:511,9'
          Dst:             validate_class_datum
    - functionName:    validate_common_datum_wrapper
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - validate_common_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:437,9'
          Dst:             validate_common_datum
    - functionName:    validate_scope
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - value_isvalid
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:195,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:204,8'
          Dst:             value_isvalid
    - functionName:    validate_context
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - validate_mls_range
        - validate_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1289,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1291,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1293,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1295,13'
          Dst:             validate_mls_range
    - functionName:    validate_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - value_isvalid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:838,10'
          Dst:             value_isvalid
    - functionName:    validate_symtabs
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1533
      functionLinenumberEnd: 1544
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_map
        - validate_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1537,7'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:1537,7'
          Dst:             validate_datum
    - functionName:    validate_filename_trans_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1501
      functionLinenumberEnd: 1530
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          181
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - validate_simpletype
        - validate_type_set
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1513,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1503,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1505,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1507,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1509,7'
          Dst:             validate_simpletype
    - functionName:    validate_scope_index
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          209
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - validate_ebitmap
        - validate_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1473,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1475,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1477,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1479,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1481,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1483,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1485,6'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1489,7'
          Dst:             validate_value
    - functionName:    validate_range_trans_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1465
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          140
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - validate_ebitmap
        - validate_mls_semantic_range
        - validate_type_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1450,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1452,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1454,7'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1456,7'
          Dst:             validate_mls_semantic_range
    - functionName:    validate_role_allow_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1432
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - validate_role_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1434,7'
          Dst:             validate_role_set
        - Src:             'policydb_validate.c:1436,7'
          Dst:             validate_role_set
    - functionName:    validate_role_trans_rules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1412
      functionLinenumberEnd: 1429
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - validate_ebitmap
        - validate_role_set
        - validate_type_set
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1414,7'
          Dst:             validate_role_set
        - Src:             'policydb_validate.c:1416,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1418,7'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1420,7'
          Dst:             validate_value
    - functionName:    validate_filename_trans
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - validate_ebitmap
        - validate_simpletype
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1256,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1258,6'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1263,7'
          Dst:             validate_ebitmap
        - Src:             'policydb_validate.c:1265,7'
          Dst:             validate_simpletype
    - functionName:    validate_bool_id_array
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1122
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          117
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1113,7'
          Dst:             validate_value
    - functionName:    validate_avrules
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          436
      EdgeCount:       110
      CyclomaticComplexity: 19
      functionsReached:
        - validate_simpletype
        - validate_type_set
        - validate_value
      functionUses:    3
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1031,3'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1064,4'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1075,3'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1085,4'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1026,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1028,7'
          Dst:             validate_type_set
        - Src:             'policydb_validate.c:1053,8'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1055,45'
          Dst:             validate_simpletype
    - functionName:    validate_cond_av_list
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          133
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - validate_avtab_key_and_datum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1011,8'
          Dst:             validate_avtab_key_and_datum
    - functionName:    validate_avtab_key_and_datum
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 990
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          200
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - validate_access_vector
        - validate_avtab_key
        - validate_simpletype
        - validate_xperms
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:962,6'
          Dst:             validate_avtab_key
        - Src:             'policydb_validate.c:971,7'
          Dst:             validate_access_vector
        - Src:             'policydb_validate.c:975,37'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:982,20'
          Dst:             validate_access_vector
        - Src:             'policydb_validate.c:985,7'
          Dst:             validate_xperms
    - functionName:    validate_avtab_key
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          242
      EdgeCount:       61
      CyclomaticComplexity: 14
      functionsReached:
        - validate_simpletype
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:896,2'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:883,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:885,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:888,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:890,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:894,6'
          Dst:             validate_value
    - functionName:    validate_access_vector
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_xperms
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:924,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    validate_cond_expr
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1170
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          211
      EdgeCount:       53
      CyclomaticComplexity: 12
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1132,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1134,8'
          Dst:             validate_value
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    create_gap_ebitmap
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_init
        - ebitmap_set_bit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:38,2'
          Dst:             ebitmap_init
        - Src:             'policydb_validate.c:42,8'
          Dst:             ebitmap_set_bit
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    validate_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - create_gap_ebitmap
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:53,6'
          Dst:             create_gap_ebitmap
    - functionName:    validate_array_destroy
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1767
      functionLinenumberEnd: 1773
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1771,3'
          Dst:             ebitmap_destroy
    - functionName:    validate_attrtype_map
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1678
      functionLinenumberEnd: 1695
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - validate_ebitmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1684,8'
          Dst:             validate_ebitmap
    - functionName:    validate_typeattr_map
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1658
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - validate_ebitmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1664,8'
          Dst:             validate_ebitmap
    - functionName:    validate_range_transitions
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1646
      functionLinenumberEnd: 1655
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - validate_range_transition
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1649,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:1649,6'
          Dst:             validate_range_transition
    - functionName:    validate_neveraudit
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1606
      functionLinenumberEnd: 1620
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          137
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - validate_simpletype
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1610,2'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:1610,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:1611,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:1610,2'
          Dst:             ebitmap_next
    - functionName:    validate_permissives
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1589
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          137
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - validate_simpletype
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1593,2'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:1593,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:1594,7'
          Dst:             validate_simpletype
        - Src:             'policydb_validate.c:1593,2'
          Dst:             ebitmap_next
    - functionName:    validate_datum_array_entries
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          211
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - hashtab_map
        - validate_bool_datum_wrapper
        - validate_class_datum_wrapper
        - validate_common_datum_wrapper
        - validate_datum
        - validate_level_datum_wrapper
        - validate_role_datum_wrapper
        - validate_type_datum_wrapper
        - validate_user_datum_wrapper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:845,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:845,6'
          Dst:             validate_common_datum_wrapper
        - Src:             'policydb_validate.c:848,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:848,6'
          Dst:             validate_class_datum_wrapper
        - Src:             'policydb_validate.c:851,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:851,6'
          Dst:             validate_role_datum_wrapper
        - Src:             'policydb_validate.c:854,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:854,6'
          Dst:             validate_type_datum_wrapper
        - Src:             'policydb_validate.c:857,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:857,6'
          Dst:             validate_user_datum_wrapper
        - Src:             'policydb_validate.c:860,16'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:860,16'
          Dst:             validate_level_datum_wrapper
        - Src:             'policydb_validate.c:863,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:863,6'
          Dst:             validate_datum
        - Src:             'policydb_validate.c:866,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:866,6'
          Dst:             validate_bool_datum_wrapper
    - functionName:    validate_datum_array_gaps
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          341
      EdgeCount:       66
      CyclomaticComplexity: 17
      functionsReached:
        - ebitmap_get_bit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:796,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:801,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:811,8'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:817,7'
          Dst:             ebitmap_get_bit
        - Src:             'policydb_validate.c:822,7'
          Dst:             ebitmap_get_bit
    - functionName:    validate_scopes
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - hashtab_map
        - validate_scope
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:227,7'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:227,7'
          Dst:             validate_scope
    - functionName:    validate_genfs
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1384
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          164
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - validate_context
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1390,8'
          Dst:             validate_context
        - Src:             'policydb_validate.c:1392,26'
          Dst:             validate_value
    - functionName:    validate_ocontexts
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1302
      functionLinenumberEnd: 1381
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          432
      EdgeCount:       106
      CyclomaticComplexity: 22
      functionsReached:
        - validate_context
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1312,5'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1329,6'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1352,5'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1308,8'
          Dst:             validate_context
        - Src:             'policydb_validate.c:1319,10'
          Dst:             validate_context
    - functionName:    validate_avrule_blocks
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1547
      functionLinenumberEnd: 1586
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          247
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - validate_avrules
        - validate_cond_list
        - validate_filename_trans_rules
        - validate_range_trans_rules
        - validate_role_allow_rules
        - validate_role_trans_rules
        - validate_scope_index
        - validate_symtabs
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1572,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1552,8'
          Dst:             validate_cond_list
        - Src:             'policydb_validate.c:1554,8'
          Dst:             validate_avrules
        - Src:             'policydb_validate.c:1556,8'
          Dst:             validate_role_trans_rules
        - Src:             'policydb_validate.c:1558,8'
          Dst:             validate_role_allow_rules
        - Src:             'policydb_validate.c:1560,8'
          Dst:             validate_range_trans_rules
        - Src:             'policydb_validate.c:1562,8'
          Dst:             validate_scope_index
        - Src:             'policydb_validate.c:1564,8'
          Dst:             validate_scope_index
        - Src:             'policydb_validate.c:1566,8'
          Dst:             validate_filename_trans_rules
        - Src:             'policydb_validate.c:1568,8'
          Dst:             validate_symtabs
    - functionName:    validate_cond_list
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          217
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - validate_avrules
        - validate_bool_id_array
        - validate_cond_av_list
        - validate_cond_expr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1188,3'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1196,3'
          Branch Sides:    []
      Callsites:
        - Src:             'policydb_validate.c:1175,7'
          Dst:             validate_cond_expr
        - Src:             'policydb_validate.c:1177,7'
          Dst:             validate_cond_av_list
        - Src:             'policydb_validate.c:1179,7'
          Dst:             validate_cond_av_list
        - Src:             'policydb_validate.c:1181,7'
          Dst:             validate_avrules
        - Src:             'policydb_validate.c:1183,7'
          Dst:             validate_avrules
        - Src:             'policydb_validate.c:1185,7'
          Dst:             validate_bool_id_array
    - functionName:    validate_filename_trans_hashtab
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1276
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - validate_filename_trans
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1279,6'
          Dst:             hashtab_map
        - Src:             'policydb_validate.c:1279,6'
          Dst:             validate_filename_trans
    - functionName:    validate_role_allows
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1246
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          116
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1235,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1237,7'
          Dst:             validate_value
    - functionName:    validate_role_transes
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1213
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          142
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - validate_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1215,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1217,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1219,7'
          Dst:             validate_value
        - Src:             'policydb_validate.c:1221,7'
          Dst:             validate_value
    - functionName:    validate_avtab
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 1002
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - avtab_map
        - validate_avtab_key_and_datum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:996,6'
          Dst:             avtab_map
        - Src:             'policydb_validate.c:996,6'
          Dst:             validate_avtab_key_and_datum
    - functionName:    validate_policycaps
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1750
      functionLinenumberEnd: 1764
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - sepol_polcap_getname
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1754,2'
          Dst:             ebitmap_start
        - Src:             'policydb_validate.c:1754,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'policydb_validate.c:1755,8'
          Dst:             sepol_polcap_getname
        - Src:             'policydb_validate.c:1754,2'
          Dst:             ebitmap_next
    - functionName:    validate_properties
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1698
      functionLinenumberEnd: 1747
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          246
      EdgeCount:       61
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'policydb_validate.c:1699,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1717,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1725,2'
          Branch Sides:    []
        - Branch String:   'policydb_validate.c:1733,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    validate_array_init
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          227
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached:
        - ebitmap_init
        - validate_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:61,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:63,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:65,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:68,7'
          Dst:             validate_init
        - Src:             'policydb_validate.c:77,3'
          Dst:             ebitmap_init
        - Src:             'policydb_validate.c:79,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:81,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:83,6'
          Dst:             validate_init
        - Src:             'policydb_validate.c:85,6'
          Dst:             validate_init
    - functionName:    policydb_validate
      functionSourceFile: '/src/selinux/libsepol/src/policydb_validate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1779
      functionLinenumberEnd: 1847
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          342
      EdgeCount:       84
      CyclomaticComplexity: 26
      functionsReached:
        - validate_array_destroy
        - validate_array_init
        - validate_attrtype_map
        - validate_avrule_blocks
        - validate_avtab
        - validate_cond_list
        - validate_datum_array_entries
        - validate_datum_array_gaps
        - validate_filename_trans_hashtab
        - validate_genfs
        - validate_neveraudit
        - validate_ocontexts
        - validate_permissives
        - validate_policycaps
        - validate_properties
        - validate_range_transitions
        - validate_role_allows
        - validate_role_transes
        - validate_scopes
        - validate_typeattr_map
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'policydb_validate.c:1782,6'
          Dst:             validate_array_init
        - Src:             'policydb_validate.c:1785,6'
          Dst:             validate_properties
        - Src:             'policydb_validate.c:1788,6'
          Dst:             validate_policycaps
        - Src:             'policydb_validate.c:1792,7'
          Dst:             validate_avtab
        - Src:             'policydb_validate.c:1795,8'
          Dst:             validate_cond_list
        - Src:             'policydb_validate.c:1797,7'
          Dst:             validate_role_transes
        - Src:             'policydb_validate.c:1799,7'
          Dst:             validate_role_allows
        - Src:             'policydb_validate.c:1802,8'
          Dst:             validate_filename_trans_hashtab
        - Src:             'policydb_validate.c:1805,7'
          Dst:             validate_avrule_blocks
        - Src:             'policydb_validate.c:1809,6'
          Dst:             validate_ocontexts
        - Src:             'policydb_validate.c:1812,6'
          Dst:             validate_genfs
        - Src:             'policydb_validate.c:1815,6'
          Dst:             validate_scopes
        - Src:             'policydb_validate.c:1818,6'
          Dst:             validate_datum_array_gaps
        - Src:             'policydb_validate.c:1821,6'
          Dst:             validate_datum_array_entries
        - Src:             'policydb_validate.c:1824,6'
          Dst:             validate_permissives
        - Src:             'policydb_validate.c:1827,6'
          Dst:             validate_neveraudit
        - Src:             'policydb_validate.c:1830,6'
          Dst:             validate_range_transitions
        - Src:             'policydb_validate.c:1833,6'
          Dst:             validate_typeattr_map
        - Src:             'policydb_validate.c:1836,6'
          Dst:             validate_attrtype_map
        - Src:             'policydb_validate.c:1839,2'
          Dst:             validate_array_destroy
        - Src:             'policydb_validate.c:1845,2'
          Dst:             validate_array_destroy
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    convert_context_handle_invalid_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1604
      functionLinenumberEnd: 1616
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - context_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1611,3'
          Dst:             context_to_string
    - functionName:    context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_context_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:126,9'
          Dst:             mls_context_cpy
    - functionName:    validate_perm
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1544
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          133
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - hashtab_search
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1534,31'
          Dst:             hashtab_search
    - functionName:    compute_sid_handle_invalid_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - context_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1336,3'
          Dst:             context_to_string
        - Src:             'services.c:1337,3'
          Dst:             context_to_string
        - Src:             'services.c:1338,3'
          Dst:             context_to_string
    - functionName:    context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    type_attribute_bounds_av
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          137
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - context_struct_compute_av
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:882,2'
          Dst:             context_struct_compute_av
    - functionName:    context_struct_compute_av
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          647
      EdgeCount:       126
      CyclomaticComplexity: 32
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
        - cond_compute_av
        - constraint_expr_eval_reason
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - type_attribute_bounds_av
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:950,2'
          Dst:             ebitmap_start
        - Src:             'services.c:950,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:951,3'
          Dst:             ebitmap_start
        - Src:             'services.c:951,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:955,9'
          Dst:             avtab_search_node
        - Src:             'services.c:958,9'
          Dst:             avtab_search_node_next
        - Src:             'services.c:969,4'
          Dst:             cond_compute_av
        - Src:             'services.c:951,3'
          Dst:             ebitmap_next
        - Src:             'services.c:950,2'
          Dst:             ebitmap_next
        - Src:             'services.c:987,8'
          Dst:             constraint_expr_eval_reason
        - Src:             'services.c:1024,2'
          Dst:             type_attribute_bounds_av
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constraint_expr_eval_reason
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         253
      ICount:          2129
      EdgeCount:       302
      CyclomaticComplexity: 51
      functionsReached:
        - calloc
        - cat_expr_buf
        - ebitmap_get_bit
        - get_class_info
        - get_name_list
        - mls_level_dom
        - mls_level_eq
        - msgcat
        - pop
        - push
        - realloc
        - reallocarray
        - snprintf
        - sprintf
        - strdup
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'services.c:479,3'
          Branch Sides:    []
        - Branch String:   'services.c:513,4'
          Branch Sides:    []
        - Branch String:   'services.c:534,5'
          Branch Sides:    []
        - Branch String:   'services.c:591,5'
          Branch Sides:    []
        - Branch String:   'services.c:627,4'
          Branch Sides:    []
        - Branch String:   'services.c:677,4'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:434,14'
          Dst:             get_class_info
        - Src:             'services.c:454,20'
          Dst:             reallocarray
        - Src:             'services.c:487,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:497,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:507,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:517,22'
          Dst:             strdup
        - Src:             'services.c:518,22'
          Dst:             strdup
        - Src:             'services.c:523,22'
          Dst:             strdup
        - Src:             'services.c:524,22'
          Dst:             strdup
        - Src:             'services.c:531,22'
          Dst:             strdup
        - Src:             'services.c:532,22'
          Dst:             strdup
        - Src:             'services.c:536,16'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:537,6'
          Dst:             msgcat
        - Src:             'services.c:541,16'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:542,6'
          Dst:             msgcat
        - Src:             'services.c:546,18'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:547,12'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:548,6'
          Dst:             msgcat
        - Src:             'services.c:558,22'
          Dst:             strdup
        - Src:             'services.c:559,22'
          Dst:             strdup
        - Src:             'services.c:564,22'
          Dst:             strdup
        - Src:             'services.c:565,22'
          Dst:             strdup
        - Src:             'services.c:570,22'
          Dst:             strdup
        - Src:             'services.c:571,22'
          Dst:             strdup
        - Src:             'services.c:576,22'
          Dst:             strdup
        - Src:             'services.c:577,22'
          Dst:             strdup
        - Src:             'services.c:582,22'
          Dst:             strdup
        - Src:             'services.c:583,22'
          Dst:             strdup
        - Src:             'services.c:588,22'
          Dst:             strdup
        - Src:             'services.c:589,22'
          Dst:             strdup
        - Src:             'services.c:593,16'
          Dst:             mls_level_eq
        - Src:             'services.c:594,6'
          Dst:             msgcat
        - Src:             'services.c:598,17'
          Dst:             mls_level_eq
        - Src:             'services.c:599,6'
          Dst:             msgcat
        - Src:             'services.c:603,16'
          Dst:             mls_level_dom
        - Src:             'services.c:604,6'
          Dst:             msgcat
        - Src:             'services.c:608,16'
          Dst:             mls_level_dom
        - Src:             'services.c:609,6'
          Dst:             msgcat
        - Src:             'services.c:613,16'
          Dst:             mls_level_dom
        - Src:             'services.c:613,16'
          Dst:             mls_level_dom
        - Src:             'services.c:614,6'
          Dst:             msgcat
        - Src:             'services.c:630,5'
          Dst:             msgcat
        - Src:             'services.c:634,5'
          Dst:             msgcat
        - Src:             'services.c:660,5'
          Dst:             snprintf
        - Src:             'services.c:661,22'
          Dst:             strdup
        - Src:             'services.c:665,5'
          Dst:             snprintf
        - Src:             'services.c:666,22'
          Dst:             strdup
        - Src:             'services.c:670,5'
          Dst:             snprintf
        - Src:             'services.c:671,22'
          Dst:             strdup
        - Src:             'services.c:679,15'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:680,5'
          Dst:             get_name_list
        - Src:             'services.c:684,16'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:685,5'
          Dst:             get_name_list
        - Src:             'services.c:717,16'
          Dst:             calloc
        - Src:             'services.c:726,7'
          Dst:             strncmp
        - Src:             'services.c:726,47'
          Dst:             strncmp
        - Src:             'services.c:728,8'
          Dst:             pop
        - Src:             'services.c:729,12'
          Dst:             strlen
        - Src:             'services.c:730,8'
          Dst:             pop
        - Src:             'services.c:731,12'
          Dst:             strlen
        - Src:             'services.c:742,4'
          Dst:             sprintf
        - Src:             'services.c:744,4'
          Dst:             push
        - Src:             'services.c:748,14'
          Dst:             strncmp
        - Src:             'services.c:749,8'
          Dst:             pop
        - Src:             'services.c:750,12'
          Dst:             strlen
        - Src:             'services.c:760,8'
          Dst:             strncmp
        - Src:             'services.c:761,5'
          Dst:             sprintf
        - Src:             'services.c:764,5'
          Dst:             sprintf
        - Src:             'services.c:766,4'
          Dst:             push
        - Src:             'services.c:770,4'
          Dst:             push
        - Src:             'services.c:774,6'
          Dst:             pop
        - Src:             'services.c:778,2'
          Dst:             sprintf
        - Src:             'services.c:803,11'
          Dst:             snprintf
        - Src:             'services.c:807,22'
          Dst:             realloc
    - functionName:    get_class_info
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          268
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - realloc
        - sepol_av_to_string
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:323,19'
          Dst:             realloc
        - Src:             'services.c:334,9'
          Dst:             snprintf
        - Src:             'services.c:341,9'
          Dst:             snprintf
        - Src:             'services.c:350,20'
          Dst:             sepol_av_to_string
        - Src:             'services.c:352,10'
          Dst:             snprintf
        - Src:             'services.c:356,10'
          Dst:             snprintf
    - functionName:    cat_expr_buf
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          126
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - realloc
        - snprintf
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:182,9'
          Dst:             snprintf
        - Src:             'services.c:185,14'
          Dst:             realloc
    - functionName:    msgcat
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cat_expr_buf
        - snprintf
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:278,3'
          Dst:             snprintf
        - Src:             'services.c:281,3'
          Dst:             snprintf
        - Src:             'services.c:283,2'
          Dst:             cat_expr_buf
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_level_dom
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_contains
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:109,36'
          Dst:             ebitmap_contains
    - functionName:    get_name_list
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          352
      EdgeCount:       71
      CyclomaticComplexity: 17
      functionsReached:
        - cat_expr_buf
        - ebitmap_get_bit
        - snprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'services.c:247,4'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:227,8'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:233,2'
          Dst:             snprintf
        - Src:             'services.c:234,2'
          Dst:             cat_expr_buf
        - Src:             'services.c:237,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:239,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:242,9'
          Dst:             ebitmap_get_bit
        - Src:             'services.c:249,5'
          Dst:             snprintf
        - Src:             'services.c:253,5'
          Dst:             snprintf
        - Src:             'services.c:257,5'
          Dst:             snprintf
        - Src:             'services.c:261,4'
          Dst:             cat_expr_buf
        - Src:             'services.c:265,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:267,3'
          Dst:             cat_expr_buf
        - Src:             'services.c:269,3'
          Dst:             cat_expr_buf
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pop
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    push
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - reallocarray
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:97,15'
          Dst:             reallocarray
    - functionName:    sepol_fs_use
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2304
      functionLinenumberEnd: 2336
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          126
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_genfs_sid
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2310,7'
          Dst:             strcmp
        - Src:             'services.c:2318,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:2326,8'
          Dst:             sepol_genfs_sid
    - functionName:    sepol_genfs_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2259
      functionLinenumberEnd: 2299
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          199
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2266,9'
          Dst:             strcmp
        - Src:             'services.c:2278,9'
          Dst:             strlen
        - Src:             'services.c:2280,8'
          Dst:             strncmp
        - Src:             'services.c:2291,8'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_get_user_sids
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2169
      functionLinenumberEnd: 2247
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          336
      EdgeCount:       62
      CyclomaticComplexity: 18
      functionsReached:
        - calloc
        - context_struct_compute_av
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - hashtab_search
        - mls_setup_user_range
        - sepol_sidtab_context_to_sid
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2180,12'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:2186,26'
          Dst:             hashtab_search
        - Src:             'services.c:2194,11'
          Dst:             calloc
        - Src:             'services.c:2200,2'
          Dst:             ebitmap_start
        - Src:             'services.c:2200,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:2203,3'
          Dst:             ebitmap_start
        - Src:             'services.c:2203,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'services.c:2208,8'
          Dst:             mls_setup_user_range
        - Src:             'services.c:2212,9'
          Dst:             context_struct_compute_av
        - Src:             'services.c:2218,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:2228,15'
          Dst:             calloc
        - Src:             'services.c:2203,3'
          Dst:             ebitmap_next
        - Src:             'services.c:2200,2'
          Dst:             ebitmap_next
    - functionName:    match_ipv6_addrmask
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2075
      functionLinenumberEnd: 2084
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_node_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2096
      functionLinenumberEnd: 2154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - short
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          181
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - match_ipv6_addrmask
        - sepol_sidtab_context_to_sid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'services.c:2100,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:2128,8'
          Dst:             match_ipv6_addrmask
        - Src:             'services.c:2142,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_netif_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2038
      functionLinenumberEnd: 2070
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2044,7'
          Dst:             strcmp
        - Src:             'services.c:2051,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:2056,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_port_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - short
        - short
        - char
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          138
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:2013,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_ibendport_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1961
      functionLinenumberEnd: 1987
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          119
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1968,8'
          Dst:             strcmp
        - Src:             'services.c:1975,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_ibpkey_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1924
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          132
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1939,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    sepol_fs_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1883
      functionLinenumberEnd: 1915
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          142
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - sepol_sidtab_context_to_sid
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1889,7'
          Dst:             strcmp
        - Src:             'services.c:1896,9'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:1901,9'
          Dst:             sepol_sidtab_context_to_sid
    - functionName:    convert_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1696
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          242
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - context_cpy
        - context_destroy
        - context_to_string
        - convert_context_handle_invalid_context
        - hashtab_search
        - mls_convert_context
        - policydb_context_isvalid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1644,6'
          Dst:             context_cpy
        - Src:             'services.c:1648,30'
          Dst:             hashtab_search
        - Src:             'services.c:1659,26'
          Dst:             hashtab_search
        - Src:             'services.c:1669,6'
          Dst:             hashtab_search
        - Src:             'services.c:1676,7'
          Dst:             mls_convert_context
        - Src:             'services.c:1681,7'
          Dst:             policydb_context_isvalid
        - Src:             'services.c:1682,8'
          Dst:             convert_context_handle_invalid_context
        - Src:             'services.c:1687,2'
          Dst:             context_destroy
        - Src:             'services.c:1691,2'
          Dst:             context_to_string
        - Src:             'services.c:1692,2'
          Dst:             context_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    clone_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_sidtab_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1599,9'
          Dst:             sepol_sidtab_insert
    - functionName:    validate_class
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1552
      functionLinenumberEnd: 1591
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          348
      EdgeCount:       65
      CyclomaticComplexity: 16
      functionsReached:
        - hashtab_map
        - hashtab_search
        - validate_perm
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1560,24'
          Dst:             hashtab_search
        - Src:             'services.c:1576,7'
          Dst:             hashtab_map
        - Src:             'services.c:1576,7'
          Dst:             validate_perm
        - Src:             'services.c:1585,6'
          Dst:             hashtab_map
        - Src:             'services.c:1585,6'
          Dst:             validate_perm
    - functionName:    sepol_load_policy
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1808
      functionLinenumberEnd: 1871
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          145
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - clone_sid
        - convert_context
        - hashtab_map
        - policy_file_init
        - policydb_destroy
        - policydb_init
        - policydb_read
        - sepol_sidtab_destroy
        - sepol_sidtab_init
        - sepol_sidtab_map
        - sepol_sidtab_map_remove_on_error
        - sepol_sidtab_set
        - sepol_sidtab_shutdown
        - validate_class
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1815,2'
          Dst:             policy_file_init
        - Src:             'services.c:1821,6'
          Dst:             policydb_init
        - Src:             'services.c:1824,6'
          Dst:             policydb_read
        - Src:             'services.c:1825,3'
          Dst:             policydb_destroy
        - Src:             'services.c:1829,2'
          Dst:             sepol_sidtab_init
        - Src:             'services.c:1832,6'
          Dst:             hashtab_map
        - Src:             'services.c:1832,6'
          Dst:             validate_class
        - Src:             'services.c:1840,2'
          Dst:             sepol_sidtab_shutdown
        - Src:             'services.c:1841,6'
          Dst:             sepol_sidtab_map
        - Src:             'services.c:1841,6'
          Dst:             clone_sid
        - Src:             'services.c:1850,2'
          Dst:             sepol_sidtab_map_remove_on_error
        - Src:             'services.c:1850,2'
          Dst:             convert_context
        - Src:             'services.c:1854,2'
          Dst:             sepol_sidtab_set
        - Src:             'services.c:1858,2'
          Dst:             sepol_sidtab_set
        - Src:             'services.c:1861,2'
          Dst:             policydb_destroy
        - Src:             'services.c:1862,2'
          Dst:             sepol_sidtab_destroy
        - Src:             'services.c:1867,2'
          Dst:             sepol_sidtab_destroy
        - Src:             'services.c:1868,2'
          Dst:             policydb_destroy
    - functionName:    exceeds_available_bytes
      functionSourceFile: '/src/selinux/libsepol/src/./private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_read
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1765
      functionLinenumberEnd: 1788
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - exceeds_available_bytes
        - next_entry
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1769,32'
          Dst:             exceeds_available_bytes
        - Src:             'services.c:1770,3'
          Dst:             __errno_location
        - Src:             'services.c:1782,7'
          Dst:             next_entry
    - functionName:    next_entry
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1700
      functionLinenumberEnd: 1724
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          91
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fread
      functionUses:    107
      BranchProfiles:
        - Branch String:   'services.c:1703,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:1705,11'
          Dst:             fread
        - Src:             'services.c:1712,4'
          Dst:             __errno_location
        - Src:             'services.c:1720,3'
          Dst:             __errno_location
    - functionName:    fread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    put_entry
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1754
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          107
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fwrite
      functionUses:    127
      BranchProfiles:
        - Branch String:   'services.c:1734,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:1736,10'
          Dst:             fwrite
        - Src:             'services.c:1739,4'
          Dst:             __errno_location
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_change_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1517
      functionLinenumberEnd: 1518
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1518,9'
          Dst:             sepol_compute_sid
    - functionName:    sepol_compute_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1482
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         101
      ICount:          607
      EdgeCount:       130
      CyclomaticComplexity: 31
      functionsReached:
        - avtab_search
        - avtab_search_node
        - avtab_search_node_next
        - compute_sid_handle_invalid_context
        - context_destroy
        - context_init
        - mls_compute_sid
        - policydb_context_isvalid
        - sepol_sidtab_context_to_sid
        - sepol_sidtab_search
      functionUses:    3
      BranchProfiles:
        - Branch String:   'services.c:1379,2'
          Branch Sides:    []
      Callsites:
        - Src:             'services.c:1362,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1367,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1376,2'
          Dst:             context_init
        - Src:             'services.c:1428,12'
          Dst:             avtab_search
        - Src:             'services.c:1432,10'
          Dst:             avtab_search_node
        - Src:             'services.c:1434,15'
          Dst:             avtab_search_node_next
        - Src:             'services.c:1464,7'
          Dst:             mls_compute_sid
        - Src:             'services.c:1470,7'
          Dst:             policydb_context_isvalid
        - Src:             'services.c:1471,8'
          Dst:             compute_sid_handle_invalid_context
        - Src:             'services.c:1478,7'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:1480,2'
          Dst:             context_destroy
    - functionName:    sepol_member_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1505
      functionLinenumberEnd: 1506
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1506,9'
          Dst:             sepol_compute_sid
    - functionName:    sepol_transition_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_sid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1493,9'
          Dst:             sepol_compute_sid
    - functionName:    sepol_context_to_sid
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1295
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - context_destroy
        - context_from_string
        - sepol_sidtab_context_to_sid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1300,6'
          Dst:             context_from_string
        - Src:             'services.c:1305,14'
          Dst:             sepol_sidtab_context_to_sid
        - Src:             'services.c:1308,2'
          Dst:             context_destroy
        - Src:             'services.c:1314,3'
          Dst:             context_destroy
    - functionName:    sepol_sid_to_context
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1273
      functionLinenumberEnd: 1285
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - context_to_string
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1277,12'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1283,7'
          Dst:             context_to_string
    - functionName:    sepol_av_perm_to_string
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sepol_av_to_string
        - sprintf
        - strcpy
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1243,16'
          Dst:             sepol_av_to_string
        - Src:             'services.c:1249,9'
          Dst:             strlen
        - Src:             'services.c:1251,4'
          Dst:             strcpy
        - Src:             'services.c:1253,4'
          Dst:             sprintf
        - Src:             'services.c:1257,3'
          Dst:             sprintf
    - functionName:    sepol_string_to_av_perm
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          199
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1216,4'
          Dst:             hashtab_search
        - Src:             'services.c:1227,4'
          Dst:             hashtab_search
    - functionName:    sepol_string_to_security_class
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1184
      functionLinenumberEnd: 1195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - hashtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1187,17'
          Dst:             hashtab_search
    - functionName:    sepol_compute_av
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1174
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_compute_av_reason
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1174,9'
          Dst:             sepol_compute_av_reason
    - functionName:    sepol_compute_av_reason
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          140
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_struct_compute_av
        - sepol_sidtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1101,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1107,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1114,7'
          Dst:             context_struct_compute_av
    - functionName:    sepol_compute_av_reason_buffer
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - short
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          150
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - context_struct_compute_av
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1137,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1143,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1161,7'
          Dst:             context_struct_compute_av
    - functionName:    sepol_validate_transition_reason_buffer
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - short
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          292
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - constraint_expr_eval_reason
        - sepol_sidtab_search
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:1052,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1058,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1064,13'
          Dst:             sepol_sidtab_search
        - Src:             'services.c:1082,8'
          Dst:             constraint_expr_eval_reason
    - functionName:    sepol_set_policydb_from_file
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - policy_file_init
        - policydb_destroy
        - policydb_init
        - policydb_read
        - sepol_sidtab_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'services.c:137,2'
          Dst:             policy_file_init
        - Src:             'services.c:141,3'
          Dst:             policydb_destroy
        - Src:             'services.c:142,6'
          Dst:             policydb_init
        - Src:             'services.c:146,6'
          Dst:             policydb_read
        - Src:             'services.c:147,3'
          Dst:             policydb_destroy
        - Src:             'services.c:152,9'
          Dst:             sepol_sidtab_init
    - functionName:    sepol_set_policydb
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_set_sidtab
      functionSourceFile: '/src/selinux/libsepol/src/services.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    mls_context_cmp
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_level_eq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:102,10'
          Dst:             mls_level_eq
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:103,3'
          Dst:             mls_level_eq
    - functionName:    context_cmp
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mls_context_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:142,29'
          Dst:             mls_context_cmp
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    mls_level_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:81,6'
          Dst:             ebitmap_cpy
    - functionName:    mls_range_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          57
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mls_level_cpy
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:125,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:128,6'
          Dst:             mls_level_cpy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:134,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_range_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:49,6'
          Dst:             mls_range_cpy
    - functionName:    sepol_sidtab_shutdown
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_set
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - context_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:266,4'
          Dst:             context_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    sepol_sidtab_hash_eval
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:248,2'
          Dst:             printf
    - functionName:    sepol_sidtab_search_context
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - context_cmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:182,8'
          Dst:             context_cmp
    - functionName:    sepol_sidtab_context_to_sid
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - sepol_sidtab_insert
        - sepol_sidtab_search_context
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:199,8'
          Dst:             sepol_sidtab_search_context
        - Src:             'sidtab.c:203,9'
          Dst:             sepol_sidtab_search_context
        - Src:             'sidtab.c:212,9'
          Dst:             sepol_sidtab_insert
    - functionName:    sepol_sidtab_insert
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          202
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - context_cpy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:57,3'
          Dst:             __errno_location
        - Src:             'sidtab.c:65,6'
          Dst:             context_cpy
    - functionName:    context_cpy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_context_cpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:126,9'
          Dst:             mls_context_cpy
    - functionName:    sepol_sidtab_map_remove_on_error
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          140
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - context_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:159,5'
          Dst:             context_destroy
    - functionName:    sepol_sidtab_map
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_search
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          159
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_sidtab_init
      functionSourceFile: '/src/selinux/libsepol/src/sidtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'sidtab.c:29,14'
          Dst:             calloc
    - functionName:    symtab_destroy
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hashtab_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'symtab.c:50,3'
          Dst:             hashtab_destroy
    - functionName:    symcmp
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'symtab.c:33,9'
          Dst:             strcmp
    - functionName:    symhash
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    symtab_init
      functionSourceFile: '/src/selinux/libsepol/src/symtab.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hashtab_create
        - symcmp
        - symhash
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'symtab.c:38,13'
          Dst:             hashtab_create
        - Src:             'symtab.c:38,13'
          Dst:             symhash
        - Src:             'symtab.c:38,13'
          Dst:             symcmp
    - functionName:    tokenize_str
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - char
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          229
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - __ctype_b_loc
        - strndup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:243,7'
          Dst:             __ctype_b_loc
        - Src:             'util.c:243,25'
          Dst:             __ctype_b_loc
        - Src:             'util.c:246,15'
          Dst:             __ctype_b_loc
        - Src:             'util.c:262,9'
          Dst:             strndup
        - Src:             'util.c:268,26'
          Dst:             __ctype_b_loc
        - Src:             'util.c:268,44'
          Dst:             __ctype_b_loc
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strndup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tokenize
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          125
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - strdup
        - tokenize_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:307,11'
          Dst:             strdup
        - Src:             'util.c:315,8'
          Dst:             tokenize_str
    - functionName:    sepol_extended_perms_to_string
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         73
      ICount:          468
      EdgeCount:       99
      CyclomaticComplexity: 28
      functionsReached:
        - realloc
        - snprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:156,6'
          Dst:             realloc
        - Src:             'util.c:164,9'
          Dst:             snprintf
        - Src:             'util.c:166,9'
          Dst:             snprintf
        - Src:             'util.c:192,11'
          Dst:             snprintf
        - Src:             'util.c:194,11'
          Dst:             snprintf
        - Src:             'util.c:200,11'
          Dst:             snprintf
        - Src:             'util.c:202,11'
          Dst:             snprintf
        - Src:             'util.c:218,8'
          Dst:             snprintf
    - functionName:    perm_name
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_av_to_string
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          198
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - hashtab_map
        - perm_name
        - realloc
        - snprintf
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:99,6'
          Dst:             realloc
        - Src:             'util.c:109,9'
          Dst:             hashtab_map
        - Src:             'util.c:109,9'
          Dst:             perm_name
        - Src:             'util.c:112,10'
          Dst:             hashtab_map
        - Src:             'util.c:112,10'
          Dst:             perm_name
        - Src:             'util.c:117,11'
          Dst:             snprintf
    - functionName:    add_i_to_a
      functionSourceFile: '/src/selinux/libsepol/src/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - reallocarray
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'util.c:55,22'
          Dst:             reallocarray
    - functionName:    range_write_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1702
      functionLinenumberEnd: 1739
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          205
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - mls_write_range_helper
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1725,10'
          Dst:             put_entry
        - Src:             'write.c:1730,11'
          Dst:             put_entry
        - Src:             'write.c:1734,7'
          Dst:             mls_write_range_helper
    - functionName:    mls_write_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_write
        - mls_level_eq
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:437,7'
          Dst:             mls_level_eq
        - Src:             'write.c:445,11'
          Dst:             put_entry
        - Src:             'write.c:449,6'
          Dst:             ebitmap_write
        - Src:             'write.c:452,7'
          Dst:             ebitmap_write
    - functionName:    mls_level_eq
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_cmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:104,36'
          Dst:             ebitmap_cmp
    - functionName:    ebitmap_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - put_entry
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:77,10'
          Dst:             put_entry
        - Src:             'write.c:83,11'
          Dst:             put_entry
        - Src:             'write.c:87,11'
          Dst:             put_entry
    - functionName:    rangetrans_count
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1688
      functionLinenumberEnd: 1698
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - mls_write_range_helper
        - put_entry
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:910,11'
          Dst:             put_entry
        - Src:             'write.c:917,7'
          Dst:             mls_write_range_helper
    - functionName:    ocontext_write_xen
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1377
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          629
      EdgeCount:       123
      CyclomaticComplexity: 31
      functionsReached:
        - context_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'write.c:1398,4'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1394,11'
          Dst:             put_entry
        - Src:             'write.c:1403,13'
          Dst:             put_entry
        - Src:             'write.c:1406,9'
          Dst:             context_write
        - Src:             'write.c:1411,13'
          Dst:             put_entry
        - Src:             'write.c:1414,9'
          Dst:             context_write
        - Src:             'write.c:1422,13'
          Dst:             put_entry
        - Src:             'write.c:1425,9'
          Dst:             context_write
        - Src:             'write.c:1435,14'
          Dst:             put_entry
        - Src:             'write.c:1450,14'
          Dst:             put_entry
        - Src:             'write.c:1454,9'
          Dst:             context_write
        - Src:             'write.c:1459,13'
          Dst:             put_entry
        - Src:             'write.c:1462,9'
          Dst:             context_write
        - Src:             'write.c:1466,11'
          Dst:             strlen
        - Src:             'write.c:1468,13'
          Dst:             put_entry
        - Src:             'write.c:1471,13'
          Dst:             put_entry
        - Src:             'write.c:1474,9'
          Dst:             context_write
    - functionName:    ocontext_write_selinux
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          696
      EdgeCount:       128
      CyclomaticComplexity: 33
      functionsReached:
        - context_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'write.c:1506,4'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1502,11'
          Dst:             put_entry
        - Src:             'write.c:1511,13'
          Dst:             put_entry
        - Src:             'write.c:1514,9'
          Dst:             context_write
        - Src:             'write.c:1519,11'
          Dst:             strlen
        - Src:             'write.c:1521,13'
          Dst:             put_entry
        - Src:             'write.c:1524,13'
          Dst:             put_entry
        - Src:             'write.c:1527,9'
          Dst:             context_write
        - Src:             'write.c:1529,9'
          Dst:             context_write
        - Src:             'write.c:1540,13'
          Dst:             put_entry
        - Src:             'write.c:1544,9'
          Dst:             context_write
        - Src:             'write.c:1548,11'
          Dst:             strlen
        - Src:             'write.c:1551,13'
          Dst:             put_entry
        - Src:             'write.c:1554,13'
          Dst:             put_entry
        - Src:             'write.c:1558,9'
          Dst:             context_write
        - Src:             'write.c:1568,13'
          Dst:             put_entry
        - Src:             'write.c:1571,9'
          Dst:             context_write
        - Src:             'write.c:1577,13'
          Dst:             put_entry
        - Src:             'write.c:1580,9'
          Dst:             context_write
        - Src:             'write.c:1585,11'
          Dst:             strlen
        - Src:             'write.c:1587,13'
          Dst:             put_entry
        - Src:             'write.c:1590,13'
          Dst:             put_entry
        - Src:             'write.c:1593,9'
          Dst:             context_write
        - Src:             'write.c:1601,13'
          Dst:             put_entry
        - Src:             'write.c:1604,9'
          Dst:             context_write
    - functionName:    only_process
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1909
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1904,2'
          Dst:             ebitmap_start
        - Src:             'write.c:1904,2'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:1904,2'
          Dst:             ebitmap_next
    - functionName:    ebitmap_start
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_node_get_bit
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ebitmap_next
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    scope_index_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2058
      functionLinenumberEnd: 2076
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2062,7'
          Dst:             ebitmap_write
        - Src:             'write.c:2067,6'
          Dst:             put_entry
        - Src:             'write.c:2071,7'
          Dst:             ebitmap_write
    - functionName:    range_trans_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2030
      functionLinenumberEnd: 2053
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          124
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_write
        - mls_write_semantic_range_helper
        - put_entry
        - type_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2039,10'
          Dst:             put_entry
        - Src:             'write.c:2043,7'
          Dst:             type_set_write
        - Src:             'write.c:2045,7'
          Dst:             type_set_write
        - Src:             'write.c:2047,7'
          Dst:             ebitmap_write
        - Src:             'write.c:2049,7'
          Dst:             mls_write_semantic_range_helper
    - functionName:    type_set_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:713,6'
          Dst:             ebitmap_write
        - Src:             'write.c:715,6'
          Dst:             ebitmap_write
        - Src:             'write.c:719,10'
          Dst:             put_entry
    - functionName:    mls_write_semantic_range_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_write_semantic_level_helper
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:398,7'
          Dst:             mls_write_semantic_level_helper
        - Src:             'write.c:402,7'
          Dst:             mls_write_semantic_level_helper
    - functionName:    mls_write_semantic_level_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:374,10'
          Dst:             put_entry
        - Src:             'write.c:381,11'
          Dst:             put_entry
    - functionName:    filename_trans_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1977
      functionLinenumberEnd: 2026
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          254
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - put_entry
        - strlen
        - type_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1987,10'
          Dst:             put_entry
        - Src:             'write.c:1992,9'
          Dst:             strlen
        - Src:             'write.c:1994,11'
          Dst:             put_entry
        - Src:             'write.c:1998,11'
          Dst:             put_entry
        - Src:             'write.c:2002,7'
          Dst:             type_set_write
        - Src:             'write.c:2004,7'
          Dst:             type_set_write
        - Src:             'write.c:2021,11'
          Dst:             put_entry
    - functionName:    role_allow_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1973
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - put_entry
        - role_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1963,10'
          Dst:             put_entry
        - Src:             'write.c:1967,7'
          Dst:             role_set_write
        - Src:             'write.c:1969,7'
          Dst:             role_set_write
    - functionName:    role_set_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:697,6'
          Dst:             ebitmap_write
        - Src:             'write.c:701,10'
          Dst:             put_entry
    - functionName:    role_trans_rule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1913
      functionLinenumberEnd: 1951
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          261
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - ebitmap_write
        - only_process
        - put_entry
        - role_set_write
        - type_set_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1922,19'
          Dst:             only_process
        - Src:             'write.c:1926,10'
          Dst:             put_entry
        - Src:             'write.c:1930,21'
          Dst:             only_process
        - Src:             'write.c:1938,7'
          Dst:             role_set_write
        - Src:             'write.c:1940,7'
          Dst:             type_set_write
        - Src:             'write.c:1943,8'
          Dst:             ebitmap_write
        - Src:             'write.c:1946,11'
          Dst:             put_entry
    - functionName:    avrule_decl_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2080
      functionLinenumberEnd: 2121
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          256
      EdgeCount:       52
      CyclomaticComplexity: 16
      functionsReached:
        - avrule_write_list
        - cond_write_list
        - filename_trans_rule_write
        - hashtab_map
        - put_entry
        - range_trans_rule_write
        - role_allow_rule_write
        - role_trans_rule_write
        - scope_index_write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2086,6'
          Dst:             put_entry
        - Src:             'write.c:2089,6'
          Dst:             cond_write_list
        - Src:             'write.c:2090,6'
          Dst:             avrule_write_list
        - Src:             'write.c:2091,6'
          Dst:             role_trans_rule_write
        - Src:             'write.c:2092,6'
          Dst:             role_allow_rule_write
        - Src:             'write.c:2097,6'
          Dst:             filename_trans_rule_write
        - Src:             'write.c:2101,6'
          Dst:             range_trans_rule_write
        - Src:             'write.c:2104,6'
          Dst:             scope_index_write
        - Src:             'write.c:2105,6'
          Dst:             scope_index_write
        - Src:             'write.c:2113,7'
          Dst:             put_entry
        - Src:             'write.c:2116,7'
          Dst:             hashtab_map
    - functionName:    cond_write_list
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 876
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cond_write_node
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:885,10'
          Dst:             put_entry
        - Src:             'write.c:890,7'
          Dst:             cond_write_node
    - functionName:    avrule_write_list
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1869
      functionLinenumberEnd: 1892
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avrule_write
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1881,6'
          Dst:             put_entry
        - Src:             'write.c:1886,7'
          Dst:             avrule_write
    - functionName:    common_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          123
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - perm_write
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:964,8'
          Dst:             strlen
        - Src:             'write.c:970,11'
          Dst:             put_entry
        - Src:             'write.c:974,10'
          Dst:             put_entry
        - Src:             'write.c:978,6'
          Dst:             hashtab_map
        - Src:             'write.c:978,6'
          Dst:             perm_write
    - functionName:    class_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         93
      ICount:          645
      EdgeCount:       126
      CyclomaticComplexity: 35
      functionsReached:
        - hashtab_map
        - perm_write
        - put_entry
        - strlen
        - write_cons_helper
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1047,8'
          Dst:             strlen
        - Src:             'write.c:1049,10'
          Dst:             strlen
        - Src:             'write.c:1068,11'
          Dst:             put_entry
        - Src:             'write.c:1072,10'
          Dst:             put_entry
        - Src:             'write.c:1077,11'
          Dst:             put_entry
        - Src:             'write.c:1081,6'
          Dst:             hashtab_map
        - Src:             'write.c:1081,6'
          Dst:             perm_write
        - Src:             'write.c:1084,6'
          Dst:             write_cons_helper
        - Src:             'write.c:1097,11'
          Dst:             put_entry
        - Src:             'write.c:1100,7'
          Dst:             write_cons_helper
        - Src:             'write.c:1122,11'
          Dst:             put_entry
        - Src:             'write.c:1132,11'
          Dst:             put_entry
    - functionName:    role_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1141
      functionLinenumberEnd: 1217
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          323
      EdgeCount:       72
      CyclomaticComplexity: 22
      functionsReached:
        - ebitmap_init
        - ebitmap_write
        - put_entry
        - strlen
        - type_set_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1164,8'
          Dst:             strlen
        - Src:             'write.c:1170,11'
          Dst:             put_entry
        - Src:             'write.c:1174,10'
          Dst:             put_entry
        - Src:             'write.c:1178,6'
          Dst:             ebitmap_write
        - Src:             'write.c:1193,4'
          Dst:             ebitmap_init
        - Src:             'write.c:1194,8'
          Dst:             ebitmap_write
        - Src:             'write.c:1197,8'
          Dst:             ebitmap_write
        - Src:             'write.c:1201,7'
          Dst:             type_set_write
        - Src:             'write.c:1208,11'
          Dst:             put_entry
        - Src:             'write.c:1212,7'
          Dst:             ebitmap_write
    - functionName:    type_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1310
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         92
      ICount:          580
      EdgeCount:       124
      CyclomaticComplexity: 34
      functionsReached:
        - ebitmap_write
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1239,8'
          Dst:             strlen
        - Src:             'write.c:1296,11'
          Dst:             put_entry
        - Src:             'write.c:1301,7'
          Dst:             ebitmap_write
        - Src:             'write.c:1305,10'
          Dst:             put_entry
    - functionName:    user_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          384
      EdgeCount:       91
      CyclomaticComplexity: 27
      functionsReached:
        - ebitmap_write
        - mls_write_level
        - mls_write_range_helper
        - mls_write_semantic_level_helper
        - mls_write_semantic_range_helper
        - put_entry
        - role_set_write
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1323,8'
          Dst:             strlen
        - Src:             'write.c:1329,11'
          Dst:             put_entry
        - Src:             'write.c:1333,10'
          Dst:             put_entry
        - Src:             'write.c:1338,7'
          Dst:             ebitmap_write
        - Src:             'write.c:1341,7'
          Dst:             role_set_write
        - Src:             'write.c:1353,7'
          Dst:             mls_write_range_helper
        - Src:             'write.c:1355,7'
          Dst:             mls_write_level
        - Src:             'write.c:1361,7'
          Dst:             mls_write_semantic_range_helper
        - Src:             'write.c:1363,7'
          Dst:             mls_write_semantic_level_helper
    - functionName:    cond_write_bool
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          149
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:737,8'
          Dst:             strlen
        - Src:             'write.c:742,11'
          Dst:             put_entry
        - Src:             'write.c:745,10'
          Dst:             put_entry
        - Src:             'write.c:752,11'
          Dst:             put_entry
    - functionName:    sens_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          102
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mls_write_level
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:468,8'
          Dst:             strlen
        - Src:             'write.c:472,11'
          Dst:             put_entry
        - Src:             'write.c:476,10'
          Dst:             put_entry
        - Src:             'write.c:480,6'
          Dst:             mls_write_level
    - functionName:    cat_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - put_entry
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:496,8'
          Dst:             strlen
        - Src:             'write.c:501,11'
          Dst:             put_entry
        - Src:             'write.c:505,10'
          Dst:             put_entry
    - functionName:    mls_write_level
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ebitmap_write
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:417,10'
          Dst:             put_entry
        - Src:             'write.c:421,6'
          Dst:             ebitmap_write
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    perm_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          89
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - put_entry
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:939,8'
          Dst:             strlen
        - Src:             'write.c:943,11'
          Dst:             put_entry
        - Src:             'write.c:947,10'
          Dst:             put_entry
    - functionName:    write_cons_helper
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          246
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - ebitmap_write
        - put_entry
        - type_set_write
      functionUses:    2
      BranchProfiles:
        - Branch String:   'write.c:1011,4'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1000,11'
          Dst:             put_entry
        - Src:             'write.c:1007,12'
          Dst:             put_entry
        - Src:             'write.c:1015,9'
          Dst:             ebitmap_write
        - Src:             'write.c:1019,7'
          Dst:             type_set_write
        - Src:             'write.c:1022,7'
          Dst:             type_set_write
    - functionName:    avrule_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1770
      functionLinenumberEnd: 1865
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          635
      EdgeCount:       124
      CyclomaticComplexity: 30
      functionsReached:
        - put_entry
        - type_set_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   ''
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1786,11'
          Dst:             put_entry
        - Src:             'write.c:1790,6'
          Dst:             type_set_write
        - Src:             'write.c:1793,6'
          Dst:             type_set_write
        - Src:             'write.c:1804,11'
          Dst:             put_entry
        - Src:             'write.c:1812,12'
          Dst:             put_entry
        - Src:             'write.c:1850,11'
          Dst:             put_entry
        - Src:             'write.c:1854,11'
          Dst:             put_entry
        - Src:             'write.c:1859,11'
          Dst:             put_entry
    - functionName:    cond_write_node
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          249
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - avrule_write_list
        - cond_write_av_list
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:828,10'
          Dst:             put_entry
        - Src:             'write.c:838,10'
          Dst:             put_entry
        - Src:             'write.c:846,12'
          Dst:             put_entry
        - Src:             'write.c:852,7'
          Dst:             cond_write_av_list
        - Src:             'write.c:854,7'
          Dst:             cond_write_av_list
        - Src:             'write.c:857,7'
          Dst:             avrule_write_list
        - Src:             'write.c:859,7'
          Dst:             avrule_write_list
        - Src:             'write.c:866,11'
          Dst:             put_entry
    - functionName:    cond_write_av_list
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          209
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - avtab_destroy
        - avtab_init
        - avtab_write_item
        - cond_av_list_destroy
        - expand_cond_av_list
        - put_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:781,7'
          Dst:             avtab_init
        - Src:             'write.c:783,7'
          Dst:             expand_cond_av_list
        - Src:             'write.c:795,10'
          Dst:             put_entry
        - Src:             'write.c:806,8'
          Dst:             avtab_write_item
        - Src:             'write.c:813,3'
          Dst:             cond_av_list_destroy
        - Src:             'write.c:814,3'
          Dst:             avtab_destroy
    - functionName:    avtab_write_item
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         163
      ICount:          1094
      EdgeCount:       216
      CyclomaticComplexity: 55
      functionsReached:
        - avtab_search_node_next
        - put_entry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:151,16'
          Dst:             avtab_search_node_next
        - Src:             'write.c:153,16'
          Dst:             avtab_search_node_next
        - Src:             'write.c:184,11'
          Dst:             avtab_search_node_next
        - Src:             'write.c:216,13'
          Dst:             put_entry
        - Src:             'write.c:229,10'
          Dst:             put_entry
        - Src:             'write.c:255,11'
          Dst:             put_entry
        - Src:             'write.c:259,11'
          Dst:             put_entry
        - Src:             'write.c:264,11'
          Dst:             put_entry
        - Src:             'write.c:269,11'
          Dst:             put_entry
    - functionName:    filename_write_one
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          165
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:624,8'
          Dst:             strlen
        - Src:             'write.c:626,10'
          Dst:             put_entry
        - Src:             'write.c:630,10'
          Dst:             put_entry
        - Src:             'write.c:644,10'
          Dst:             put_entry
        - Src:             'write.c:650,7'
          Dst:             ebitmap_write
        - Src:             'write.c:654,11'
          Dst:             put_entry
    - functionName:    filename_write_one_compat
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          172
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:589,8'
          Dst:             strlen
        - Src:             'write.c:591,3'
          Dst:             ebitmap_start
        - Src:             'write.c:591,3'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:593,12'
          Dst:             put_entry
        - Src:             'write.c:597,12'
          Dst:             put_entry
        - Src:             'write.c:605,12'
          Dst:             put_entry
        - Src:             'write.c:591,3'
          Dst:             ebitmap_next
    - functionName:    avtab_reset_merged
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    range_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1764
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_map
        - put_entry
        - range_write_helper
        - rangetrans_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1754,7'
          Dst:             hashtab_map
        - Src:             'write.c:1754,7'
          Dst:             rangetrans_count
        - Src:             'write.c:1759,10'
          Dst:             put_entry
        - Src:             'write.c:1763,9'
          Dst:             hashtab_map
        - Src:             'write.c:1763,9'
          Dst:             range_write_helper
    - functionName:    genfs_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          248
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - context_write
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:1638,10'
          Dst:             put_entry
        - Src:             'write.c:1642,9'
          Dst:             strlen
        - Src:             'write.c:1644,11'
          Dst:             put_entry
        - Src:             'write.c:1647,11'
          Dst:             put_entry
        - Src:             'write.c:1654,11'
          Dst:             put_entry
        - Src:             'write.c:1658,10'
          Dst:             strlen
        - Src:             'write.c:1660,12'
          Dst:             put_entry
        - Src:             'write.c:1663,12'
          Dst:             put_entry
        - Src:             'write.c:1667,12'
          Dst:             put_entry
        - Src:             'write.c:1670,8'
          Dst:             context_write
    - functionName:    ocontext_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1615
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - ocontext_write_selinux
        - ocontext_write_xen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'write.c:1617,2'
          Branch Sides:    []
      Callsites:
        - Src:             'write.c:1619,8'
          Dst:             ocontext_write_selinux
        - Src:             'write.c:1622,8'
          Dst:             ocontext_write_xen
    - functionName:    scope_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2160
      functionLinenumberEnd: 2198
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          167
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - put_entry
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2165,19'
          Dst:             strlen
        - Src:             'write.c:2175,13'
          Dst:             calloc
        - Src:             'write.c:2183,6'
          Dst:             put_entry
        - Src:             'write.c:2184,6'
          Dst:             put_entry
        - Src:             'write.c:2193,6'
          Dst:             put_entry
    - functionName:    avrule_block_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2125
      functionLinenumberEnd: 2157
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          144
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - avrule_decl_write
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2133,6'
          Dst:             put_entry
        - Src:             'write.c:2146,7'
          Dst:             put_entry
        - Src:             'write.c:2150,8'
          Dst:             avrule_decl_write
    - functionName:    filename_trans_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - filename_write_one
        - filename_write_one_compat
        - hashtab_map
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:675,11'
          Dst:             put_entry
        - Src:             'write.c:679,8'
          Dst:             hashtab_map
        - Src:             'write.c:679,8'
          Dst:             filename_write_one_compat
        - Src:             'write.c:683,11'
          Dst:             put_entry
        - Src:             'write.c:687,8'
          Dst:             hashtab_map
        - Src:             'write.c:687,8'
          Dst:             filename_write_one
    - functionName:    role_allow_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:567,10'
          Dst:             put_entry
        - Src:             'write.c:573,11'
          Dst:             put_entry
    - functionName:    role_trans_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          275
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:528,10'
          Dst:             put_entry
        - Src:             'write.c:543,11'
          Dst:             put_entry
        - Src:             'write.c:548,12'
          Dst:             put_entry
    - functionName:    avtab_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          254
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - avtab_destroy
        - avtab_init
        - avtab_reset_merged
        - avtab_write_item
        - expand_avtab
        - put_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:303,7'
          Dst:             avtab_init
        - Src:             'write.c:305,7'
          Dst:             expand_avtab
        - Src:             'write.c:310,3'
          Dst:             avtab_reset_merged
        - Src:             'write.c:315,11'
          Dst:             put_entry
        - Src:             'write.c:324,8'
          Dst:             avtab_write_item
        - Src:             'write.c:335,11'
          Dst:             put_entry
        - Src:             'write.c:340,3'
          Dst:             avtab_reset_merged
        - Src:             'write.c:343,9'
          Dst:             avtab_write_item
        - Src:             'write.c:354,3'
          Dst:             avtab_destroy
    - functionName:    role_attr_uncount
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2216
      functionLinenumberEnd: 2224
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    type_attr_uncount
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2203
      functionLinenumberEnd: 2211
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    policydb_write
      functionSourceFile: '/src/selinux/libsepol/src/write.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2233
      functionLinenumberEnd: 2461
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         240
      ICount:          1499
      EdgeCount:       325
      CyclomaticComplexity: 87
      functionsReached:
        - avrule_block_write
        - avtab_write
        - cond_write_list
        - ebitmap_next
        - ebitmap_node_get_bit
        - ebitmap_start
        - ebitmap_write
        - filename_trans_write
        - genfs_write
        - hashtab_map
        - ocontext_write
        - policydb_lookup_compat
        - put_entry
        - range_write
        - role_allow_write
        - role_attr_uncount
        - role_trans_write
        - scope_write
        - strlen
        - type_attr_uncount
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'write.c:2269,9'
          Dst:             strlen
        - Src:             'write.c:2277,11'
          Dst:             put_entry
        - Src:             'write.c:2280,10'
          Dst:             put_entry
        - Src:             'write.c:2286,9'
          Dst:             policydb_lookup_compat
        - Src:             'write.c:2304,11'
          Dst:             put_entry
        - Src:             'write.c:2310,9'
          Dst:             strlen
        - Src:             'write.c:2312,11'
          Dst:             put_entry
        - Src:             'write.c:2315,11'
          Dst:             put_entry
        - Src:             'write.c:2318,9'
          Dst:             strlen
        - Src:             'write.c:2320,11'
          Dst:             put_entry
        - Src:             'write.c:2323,11'
          Dst:             put_entry
        - Src:             'write.c:2334,7'
          Dst:             ebitmap_write
        - Src:             'write.c:2342,4'
          Dst:             ebitmap_start
        - Src:             'write.c:2342,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:2342,4'
          Dst:             ebitmap_next
        - Src:             'write.c:2348,14'
          Dst:             ebitmap_write
        - Src:             'write.c:2354,4'
          Dst:             ebitmap_start
        - Src:             'write.c:2354,4'
          Dst:             ebitmap_node_get_bit
        - Src:             'write.c:2354,4'
          Dst:             ebitmap_next
        - Src:             'write.c:2360,14'
          Dst:             ebitmap_write
        - Src:             'write.c:2378,4'
          Dst:             hashtab_map
        - Src:             'write.c:2378,4'
          Dst:             type_attr_uncount
        - Src:             'write.c:2391,10'
          Dst:             hashtab_map
        - Src:             'write.c:2391,10'
          Dst:             role_attr_uncount
        - Src:             'write.c:2394,11'
          Dst:             put_entry
        - Src:             'write.c:2397,7'
          Dst:             hashtab_map
        - Src:             'write.c:2402,7'
          Dst:             avtab_write
        - Src:             'write.c:2409,8'
          Dst:             cond_write_list
        - Src:             'write.c:2412,7'
          Dst:             role_trans_write
        - Src:             'write.c:2414,7'
          Dst:             role_allow_write
        - Src:             'write.c:2417,8'
          Dst:             filename_trans_write
        - Src:             'write.c:2424,7'
          Dst:             avrule_block_write
        - Src:             'write.c:2430,8'
          Dst:             put_entry
        - Src:             'write.c:2433,8'
          Dst:             hashtab_map
        - Src:             'write.c:2433,8'
          Dst:             scope_write
        - Src:             'write.c:2438,6'
          Dst:             ocontext_write
        - Src:             'write.c:2438,43'
          Dst:             genfs_write
        - Src:             'write.c:2447,7'
          Dst:             range_write
        - Src:             'write.c:2455,8'
          Dst:             ebitmap_write
    - functionName:    is_perm_existent
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hashtab_search
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:199,9'
          Dst:             hashtab_search
        - Src:             'avrule_block.c:204,7'
          Dst:             hashtab_search
    - functionName:    is_id_enabled
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          178
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - hashtab_search
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:158,24'
          Dst:             hashtab_search
    - functionName:    get_decl_cond_list
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - cond_node_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:143,11'
          Dst:             cond_node_find
    - functionName:    avrule_block_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avrule_block_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:131,3'
          Dst:             avrule_block_destroy
    - functionName:    avrule_block_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - avrule_decl_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:121,3'
          Dst:             avrule_decl_destroy
    - functionName:    avrule_decl_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avrule_list_destroy
        - cond_list_destroy
        - filename_trans_rule_list_destroy
        - range_trans_rule_list_destroy
        - role_allow_rule_list_destroy
        - role_trans_rule_list_destroy
        - scope_index_destroy
        - symtabs_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:99,2'
          Dst:             cond_list_destroy
        - Src:             'avrule_block.c:100,2'
          Dst:             avrule_list_destroy
        - Src:             'avrule_block.c:101,2'
          Dst:             role_trans_rule_list_destroy
        - Src:             'avrule_block.c:102,2'
          Dst:             filename_trans_rule_list_destroy
        - Src:             'avrule_block.c:103,2'
          Dst:             role_allow_rule_list_destroy
        - Src:             'avrule_block.c:104,2'
          Dst:             range_trans_rule_list_destroy
        - Src:             'avrule_block.c:105,2'
          Dst:             scope_index_destroy
        - Src:             'avrule_block.c:106,2'
          Dst:             scope_index_destroy
        - Src:             'avrule_block.c:107,2'
          Dst:             symtabs_destroy
    - functionName:    scope_index_destroy
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          84
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ebitmap_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:84,3'
          Dst:             ebitmap_destroy
        - Src:             'avrule_block.c:88,4'
          Dst:             ebitmap_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    avrule_decl_create
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - avrule_decl_destroy
        - calloc
        - ebitmap_init
        - symtab_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:57,14'
          Dst:             calloc
        - Src:             'avrule_block.c:62,7'
          Dst:             symtab_init
        - Src:             'avrule_block.c:63,4'
          Dst:             avrule_decl_destroy
        - Src:             'avrule_block.c:69,3'
          Dst:             ebitmap_init
        - Src:             'avrule_block.c:70,3'
          Dst:             ebitmap_init
    - functionName:    avrule_block_create
      functionSourceFile: '/src/selinux/libsepol/src/avrule_block.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'avrule_block.c:47,15'
          Dst:             calloc
    - functionName:    cond_insertf
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          392
      EdgeCount:       77
      CyclomaticComplexity: 19
      functionsReached:
        - avtab_insert_nonunique
        - avtab_search
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:635,7'
          Dst:             avtab_search
        - Src:             'conditional.c:648,15'
          Dst:             avtab_search_node
        - Src:             'conditional.c:650,9'
          Dst:             avtab_search_node_next
        - Src:             'conditional.c:668,8'
          Dst:             avtab_search
        - Src:             'conditional.c:675,13'
          Dst:             avtab_insert_nonunique
    - functionName:    cond_read_av_list
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - avtab_read_item
        - cond_av_list_destroy
        - cond_insertf
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:706,7'
          Dst:             next_entry
        - Src:             'conditional.c:720,8'
          Dst:             avtab_read_item
        - Src:             'conditional.c:720,8'
          Dst:             cond_insertf
        - Src:             'conditional.c:723,4'
          Dst:             cond_av_list_destroy
    - functionName:    cond_av_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    expr_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          135
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_av_list_search
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_compute_av
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 887
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          142
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - avtab_search_node
        - avtab_search_node_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:869,14'
          Dst:             avtab_search_node
        - Src:             'conditional.c:870,14'
          Dst:             avtab_search_node_next
    - functionName:    cond_read_node
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          255
      EdgeCount:       55
      CyclomaticComplexity: 17
      functionsReached:
        - avrule_read_list
        - cond_node_destroy
        - cond_read_av_list
        - expr_isvalid
        - next_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:753,7'
          Dst:             next_entry
        - Src:             'conditional.c:759,7'
          Dst:             next_entry
        - Src:             'conditional.c:767,8'
          Dst:             next_entry
        - Src:             'conditional.c:780,8'
          Dst:             expr_isvalid
        - Src:             'conditional.c:794,7'
          Dst:             cond_read_av_list
        - Src:             'conditional.c:796,7'
          Dst:             cond_read_av_list
        - Src:             'conditional.c:800,7'
          Dst:             avrule_read_list
        - Src:             'conditional.c:802,7'
          Dst:             avrule_read_list
        - Src:             'conditional.c:808,8'
          Dst:             next_entry
        - Src:             'conditional.c:816,2'
          Dst:             cond_node_destroy
    - functionName:    cond_node_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avrule_list_destroy
        - cond_av_list_destroy
        - cond_expr_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:491,2'
          Dst:             cond_expr_destroy
        - Src:             'conditional.c:492,2'
          Dst:             avrule_list_destroy
        - Src:             'conditional.c:493,2'
          Dst:             avrule_list_destroy
        - Src:             'conditional.c:494,2'
          Dst:             cond_av_list_destroy
        - Src:             'conditional.c:495,2'
          Dst:             cond_av_list_destroy
    - functionName:    cond_expr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_read_list
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          123
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - avtab_alloc
        - cond_read_node
        - next_entry
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:827,7'
          Dst:             next_entry
        - Src:             'conditional.c:833,7'
          Dst:             avtab_alloc
        - Src:             'conditional.c:843,7'
          Dst:             cond_read_node
    - functionName:    bool_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_read_bool
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          145
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - bool_isvalid
        - cond_destroy_bool
        - hashtab_insert
        - next_entry
        - str_read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:581,7'
          Dst:             next_entry
        - Src:             'conditional.c:588,7'
          Dst:             bool_isvalid
        - Src:             'conditional.c:592,6'
          Dst:             str_read
        - Src:             'conditional.c:597,8'
          Dst:             next_entry
        - Src:             'conditional.c:603,6'
          Dst:             hashtab_insert
        - Src:             'conditional.c:608,2'
          Dst:             cond_destroy_bool
    - functionName:    cond_destroy_bool
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_index_bool
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          96
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_init_bool_indexes
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:525,6'
          Dst:             calloc
    - functionName:    cond_policydb_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_destroy
        - cond_list_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:516,2'
          Dst:             avtab_destroy
        - Src:             'conditional.c:517,2'
          Dst:             cond_list_destroy
    - functionName:    cond_list_destroy
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - cond_node_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:507,3'
          Dst:             cond_node_destroy
    - functionName:    cond_policydb_init
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - avtab_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:457,6'
          Dst:             avtab_init
    - functionName:    evaluate_cond_node
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          188
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - cond_evaluate_expr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:314,14'
          Dst:             cond_evaluate_expr
    - functionName:    cond_evaluate_expr
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          251
      EdgeCount:       35
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'conditional.c:221,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    evaluate_conds
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - evaluate_cond_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:446,9'
          Dst:             evaluate_cond_node
    - functionName:    bool_present
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_normalize_expr
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         60
      ICount:          444
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - bool_present
        - cond_evaluate_expr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'conditional.c:388,3'
          Branch Sides:    []
      Callsites:
        - Src:             'conditional.c:391,9'
          Dst:             bool_present
        - Src:             'conditional.c:421,8'
          Dst:             cond_evaluate_expr
    - functionName:    cond_node_search
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - cond_node_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:196,24'
          Dst:             cond_node_find
    - functionName:    cond_node_find
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - cond_expr_equal
        - cond_node_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:180,7'
          Dst:             cond_expr_equal
        - Src:             'conditional.c:188,9'
          Dst:             cond_node_create
    - functionName:    cond_expr_equal
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          190
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - same_bools
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:112,8'
          Dst:             same_bools
    - functionName:    cond_node_create
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          134
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - cond_copy_expr
        - cond_evaluate_expr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:154,20'
          Dst:             cond_copy_expr
        - Src:             'conditional.c:159,25'
          Dst:             cond_evaluate_expr
    - functionName:    cond_copy_expr
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    same_bools
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - bool_present
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:90,8'
          Dst:             bool_present
    - functionName:    cond_optimize
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cond_optimize_lists
      functionSourceFile: '/src/selinux/libsepol/src/conditional.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - cond_optimize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'conditional.c:57,3'
          Dst:             cond_optimize
        - Src:             'conditional.c:58,3'
          Dst:             cond_optimize
    - functionName:    constraint_expr_destroy
      functionSourceFile: '/src/selinux/libsepol/src/constraint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - type_set_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'constraint.c:45,3'
          Dst:             ebitmap_destroy
        - Src:             'constraint.c:46,3'
          Dst:             type_set_destroy
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constraint_expr_init
      functionSourceFile: '/src/selinux/libsepol/src/constraint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_init
        - type_set_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'constraint.c:31,2'
          Dst:             ebitmap_init
        - Src:             'constraint.c:35,2'
          Dst:             type_set_init
    - functionName:    mls_range_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:142,2'
          Dst:             mls_level_init
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:143,2'
          Dst:             mls_level_init
    - functionName:    mls_level_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mls_level_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ebitmap_destroy
        - mls_level_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:98,2'
          Dst:             ebitmap_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:99,2'
          Dst:             mls_level_init
    - functionName:    mls_context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_range_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:42,2'
          Dst:             mls_range_init
    - functionName:    mls_range_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/mls_types.h'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mls_level_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:148,2'
          Dst:             mls_level_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/mls_types.h:149,2'
          Dst:             mls_level_destroy
    - functionName:    mls_context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_init
        - mls_range_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:112,2'
          Dst:             mls_range_destroy
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:113,2'
          Dst:             mls_context_init
    - functionName:    sepol_context_check
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - context_destroy
        - context_from_record
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:339,12'
          Dst:             context_from_record
        - Src:             'context.c:340,2'
          Dst:             context_destroy
    - functionName:    context_from_record
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          720
      EdgeCount:       151
      CyclomaticComplexity: 36
      functionsReached:
        - __errno_location
        - context_destroy
        - context_init
        - context_is_valid
        - hashtab_search
        - mls_from_string
        - sepol_context_get_mls
        - sepol_context_get_role
        - sepol_context_get_type
        - sepol_context_get_user
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:155,22'
          Dst:             sepol_context_get_user
        - Src:             'context.c:155,15'
          Dst:             strdup
        - Src:             'context.c:156,22'
          Dst:             sepol_context_get_role
        - Src:             'context.c:156,15'
          Dst:             strdup
        - Src:             'context.c:157,22'
          Dst:             sepol_context_get_type
        - Src:             'context.c:157,15'
          Dst:             strdup
        - Src:             'context.c:158,20'
          Dst:             sepol_context_get_mls
        - Src:             'context.c:165,2'
          Dst:             context_init
        - Src:             'context.c:168,30'
          Dst:             hashtab_search
        - Src:             'context.c:177,30'
          Dst:             hashtab_search
        - Src:             'context.c:186,30'
          Dst:             hashtab_search
        - Src:             'context.c:203,14'
          Dst:             mls_from_string
        - Src:             'context.c:207,7'
          Dst:             context_is_valid
        - Src:             'context.c:227,2'
          Dst:             __errno_location
        - Src:             'context.c:228,2'
          Dst:             context_destroy
    - functionName:    context_destroy
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mls_context_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'DESTDIR/usr/include/sepol/policydb/context.h:135,2'
          Dst:             mls_context_destroy
    - functionName:    context_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/context.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_is_valid
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          202
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - ebitmap_get_bit
        - ebitmap_init
        - mls_context_isvalid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:42,2'
          Dst:             ebitmap_init
        - Src:             'context.c:43,2'
          Dst:             ebitmap_init
        - Src:             'context.c:58,17'
          Dst:             ebitmap_get_bit
        - Src:             'context.c:69,8'
          Dst:             ebitmap_get_bit
        - Src:             'context.c:74,7'
          Dst:             mls_context_isvalid
    - functionName:    ebitmap_init
      functionSourceFile: '/src/selinux/DESTDIR/usr/include/sepol/policydb/ebitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    context_from_string
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          250
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - context_from_record
        - sepol_context_free
        - sepol_context_from_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:315,6'
          Dst:             sepol_context_from_string
        - Src:             'context.c:319,6'
          Dst:             context_from_record
        - Src:             'context.c:323,2'
          Dst:             sepol_context_free
        - Src:             'context.c:329,2'
          Dst:             sepol_context_free
    - functionName:    context_to_record
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          197
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - mls_to_string
        - sepol_context_create
        - sepol_context_free
        - sepol_context_set_mls
        - sepol_context_set_role
        - sepol_context_set_type
        - sepol_context_set_user
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:251,6'
          Dst:             sepol_context_create
        - Src:             'context.c:254,6'
          Dst:             sepol_context_set_user
        - Src:             'context.c:259,6'
          Dst:             sepol_context_set_role
        - Src:             'context.c:264,6'
          Dst:             sepol_context_set_type
        - Src:             'context.c:270,7'
          Dst:             mls_to_string
        - Src:             'context.c:273,7'
          Dst:             sepol_context_set_mls
        - Src:             'context.c:283,2'
          Dst:             sepol_context_free
    - functionName:    context_to_string
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          246
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - mls_compute_context_len
        - mls_sid_to_context
        - sprintf
        - strlen
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:99,6'
          Dst:             strlen
        - Src:             'context.c:101,6'
          Dst:             strlen
        - Src:             'context.c:102,18'
          Dst:             strlen
        - Src:             'context.c:103,18'
          Dst:             mls_compute_context_len
        - Src:             'context.c:118,2'
          Dst:             sprintf
        - Src:             'context.c:124,6'
          Dst:             strlen
        - Src:             'context.c:125,6'
          Dst:             strlen
        - Src:             'context.c:126,6'
          Dst:             strlen
        - Src:             'context.c:128,2'
          Dst:             mls_sid_to_context
    - functionName:    sepol_check_context
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sepol_context_to_sid
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:26,9'
          Dst:             strlen
        - Src:             'context.c:25,9'
          Dst:             sepol_context_to_sid
    - functionName:    policydb_context_isvalid
      functionSourceFile: '/src/selinux/libsepol/src/context.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 19
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - context_is_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'context.c:19,9'
          Dst:             context_is_valid
    - functionName:    sepol_context_to_string
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          382
      EdgeCount:       71
      CyclomaticComplexity: 17
      functionsReached:
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:278,4'
          Dst:             strlen
        - Src:             'context_record.c:279,4'
          Dst:             strlen
        - Src:             'context_record.c:280,4'
          Dst:             strlen
        - Src:             'context_record.c:281,17'
          Dst:             strlen
        - Src:             'context_record.c:298,8'
          Dst:             snprintf
        - Src:             'context_record.c:301,8'
          Dst:             snprintf
    - functionName:    sepol_context_from_string
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          331
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - __errno_location
        - sepol_context_create
        - sepol_context_free
        - sepol_context_set_mls
        - sepol_context_set_role
        - sepol_context_set_type
        - sepol_context_set_user
        - strchr
        - strcmp
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:205,7'
          Dst:             strcmp
        - Src:             'context_record.c:210,6'
          Dst:             sepol_context_create
        - Src:             'context_record.c:214,8'
          Dst:             strdup
        - Src:             'context_record.c:224,15'
          Dst:             strchr
        - Src:             'context_record.c:228,6'
          Dst:             sepol_context_set_user
        - Src:             'context_record.c:233,15'
          Dst:             strchr
        - Src:             'context_record.c:237,6'
          Dst:             sepol_context_set_role
        - Src:             'context_record.c:242,15'
          Dst:             strchr
        - Src:             'context_record.c:243,7'
          Dst:             sepol_context_set_type
        - Src:             'context_record.c:247,7'
          Dst:             sepol_context_set_type
        - Src:             'context_record.c:250,7'
          Dst:             sepol_context_set_mls
        - Src:             'context_record.c:260,2'
          Dst:             __errno_location
        - Src:             'context_record.c:266,2'
          Dst:             sepol_context_free
    - functionName:    sepol_context_create
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_set_user
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:37,19'
          Dst:             strdup
    - functionName:    sepol_context_set_role
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:62,19'
          Dst:             strdup
    - functionName:    sepol_context_set_type
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:86,19'
          Dst:             strdup
    - functionName:    sepol_context_set_mls
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - strdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:110,18'
          Dst:             strdup
    - functionName:    sepol_context_free
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_clone
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          217
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - sepol_context_create
        - sepol_context_free
        - strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'context_record.c:155,6'
          Dst:             sepol_context_create
        - Src:             'context_record.c:158,24'
          Dst:             strdup
        - Src:             'context_record.c:161,24'
          Dst:             strdup
        - Src:             'context_record.c:164,24'
          Dst:             strdup
        - Src:             'context_record.c:167,35'
          Dst:             strdup
        - Src:             'context_record.c:178,2'
          Dst:             sepol_context_free
    - functionName:    sepol_context_get_mls
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_get_type
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_get_role
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sepol_context_get_user
      functionSourceFile: '/src/selinux/libsepol/src/context_record.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
...
