---
Fuzzer filename: '/src/lwan/src/bin/fuzz/request_fuzzer.cc'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/lwan/src/bin/fuzz/request_fuzzer.cc'
      linkageType:     externalLinkage
      functionLinenumber: 6
      functionLinenumberEnd: 7
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fuzz_parse_http_request
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/bin/fuzz/request_fuzzer.cc:7,12'
          Dst:             fuzz_parse_http_request
    - functionName:    reset_arena
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arena_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.c:115,5'
          Dst:             arena_reset
    - functionName:    arena_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - arena_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.c:63,5'
          Dst:             arena_init
    - functionName:    arena_init
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptr_array_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.c:43,5'
          Dst:             ptr_array_init
    - functionName:    ptr_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_arena_new
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - arena_init
        - coro_defer
        - coro_malloc
        - reset_arena
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.c:120,27'
          Dst:             coro_malloc
        - Src:             '/src/lwan/src/lib/lwan-arena.c:123,9'
          Dst:             arena_init
        - Src:             '/src/lwan/src/lib/lwan-arena.c:124,9'
          Dst:             coro_defer
        - Src:             '/src/lwan/src/lib/lwan-arena.c:124,9'
          Dst:             reset_arena
    - functionName:    ptr_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_inline
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.h:26,1'
          Dst:             lwan_array_append_inline
    - functionName:    arena_alloc
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          155
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - ptr_array_append
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.c:73,42'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-arena.c:78,28'
          Dst:             ptr_array_append
    - 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:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    arena_init0
      functionSourceFile: '/src/lwan/src/lib/lwan-arena.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arena_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-arena.c:51,5'
          Dst:             arena_init
    - functionName:    coro_lwan_array_free_heap
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-array.c:121,5'
          Dst:             lwan_array_reset
    - functionName:    lwan_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_lwan_array_free_inline
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-array.c:129,5'
          Dst:             lwan_array_reset
    - functionName:    coro_lwan_array_new
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - coro_malloc_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-array.c:139,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-array.c:141,13'
          Dst:             coro_malloc_full
    - 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:    379
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_array_sort
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - qsort
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-array.c:113,9'
          Dst:             qsort
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_array_append_inline
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - lwan_array_append_heap
        - reallocarray
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-array.c:88,16'
          Dst:             lwan_array_append_heap
        - Src:             '/src/lwan/src/lib/lwan-array.c:90,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-array.c:94,13'
          Dst:             reallocarray
    - functionName:    lwan_array_append_heap
      functionSourceFile: '/src/lwan/src/lib/lwan-array.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - reallocarray
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-array.c:65,13'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-array.c:69,20'
          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:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    72
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_handler_brew_coffee
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_aligned_alloc
      functionSourceFile: '/src/lwan/src/lib/lwan-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - posix_memalign
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-private.h:289,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-private.h:290,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-private.h:293,9'
          Dst:             posix_memalign
    - functionName:    posix_memalign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_append_strz
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_append_str
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:65,43'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:65,12'
          Dst:             lwan_strbuf_append_str
    - 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:    55
      BranchProfiles:  []
      Callsites:       []
    - functionName:    can_override_header
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          76
      EdgeCount:       25
      CyclomaticComplexity: 9
      functionsReached:
        - strcaseequal_neutral
        - strcaseequal_neutral_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:149,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:151,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:153,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:155,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:157,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:159,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:161,9'
          Dst:             strcaseequal_neutral_len
    - functionName:    lwan_key_value_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.h:428,1'
          Dst:             lwan_array_reset
    - functionName:    lwan_key_value_array_get_array
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_key_value_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_heap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.h:428,1'
          Dst:             lwan_array_append_heap
    - functionName:    lwan_key_value_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_listener_prefix_authorization
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          190
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - config_error
        - config_read_line
        - realpath
        - strdup
        - streq
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan.c:271,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:263,10'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:264,9'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:270,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan.c:273,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:275,48'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:276,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:278,56'
          Dst:             realpath
        - Src:             '/src/lwan/src/lib/lwan.c:280,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:285,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:290,48'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:292,56'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:299,5'
          Dst:             config_error
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - 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:    36
      BranchProfiles:  []
      Callsites:       []
    - functionName:    realpath
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    60
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_module
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - streq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:98,13'
          Dst:             streq
    - functionName:    parse_listener_prefix
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          368
      EdgeCount:       77
      CyclomaticComplexity: 17
      functionsReached:
        - __assert_fail
        - add_url_map
        - config_close
        - config_error
        - config_isolate_section
        - config_last_error
        - config_read_line
        - config_skip_section
        - get_module_name
        - hash_add
        - hash_get_count
        - hash_str_new
        - hash_unref
        - lwan_log_critical_debug
        - lwan_log_debug_debug
        - parse_listener_prefix_authorization
        - strdup
        - streq
        - strlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan.c:340,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:326,25'
          Dst:             hash_str_new
        - Src:             '/src/lwan/src/lib/lwan.c:327,20'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan.c:331,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan.c:333,16'
          Dst:             config_isolate_section
        - Src:             '/src/lwan/src/lib/lwan.c:335,9'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:339,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan.c:342,30'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:343,32'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:346,17'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan.c:348,17'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan.c:350,13'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/lwan.c:355,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:356,17'
          Dst:             parse_listener_prefix_authorization
        - Src:             '/src/lwan/src/lib/lwan.c:357,25'
          Dst:             config_skip_section
        - Src:             '/src/lwan/src/lib/lwan.c:358,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:368,5'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:372,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan.c:382,9'
          Dst:             get_module_name
        - Src:             '/src/lwan/src/lib/lwan.c:382,9'
          Dst:             hash_get_count
        - Src:             '/src/lwan/src/lib/lwan.c:382,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan.c:387,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:392,31'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan.c:394,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:402,9'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:406,9'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:410,5'
          Dst:             add_url_map
        - Src:             '/src/lwan/src/lib/lwan.c:413,5'
          Dst:             hash_unref
        - Src:             '/src/lwan/src/lib/lwan.c:414,5'
          Dst:             config_close
    - functionName:    get_module_name
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    add_url_map
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_log_critical_perror_debug
        - lwan_trie_add
        - strdup
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:130,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:134,20'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:136,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:138,24'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan.c:139,5'
          Dst:             lwan_trie_add
    - functionName:    find_handler
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - streq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:85,13'
          Dst:             streq
    - functionName:    parse_tls_listener
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - config_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:494,5'
          Dst:             config_error
    - functionName:    parse_listener
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - config_error
        - config_read_line
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan.c:576,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:569,29'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:571,9'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:575,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan.c:578,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:581,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:588,5'
          Dst:             config_error
    - functionName:    parse_global_headers
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          154
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - build_response_headers
        - config_error
        - config_read_line
        - lwan_key_value_array_append
        - lwan_key_value_array_get_array
        - lwan_key_value_array_init
        - lwan_key_value_array_reset
        - lwan_log_critical_perror_debug
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan.c:208,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:205,5'
          Dst:             lwan_key_value_array_init
        - Src:             '/src/lwan/src/lib/lwan.c:207,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan.c:210,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:215,18'
          Dst:             lwan_key_value_array_append
        - Src:             '/src/lwan/src/lib/lwan.c:217,17'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:221,23'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:223,17'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:227,25'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:229,17'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:235,18'
          Dst:             lwan_key_value_array_append
        - Src:             '/src/lwan/src/lib/lwan.c:237,17'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:244,42'
          Dst:             lwan_key_value_array_get_array
        - Src:             '/src/lwan/src/lib/lwan.c:244,13'
          Dst:             build_response_headers
        - Src:             '/src/lwan/src/lib/lwan.c:249,5'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:256,5'
          Dst:             lwan_key_value_array_reset
    - functionName:    build_response_headers
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - can_override_header
        - lwan_log_warning_debug
        - lwan_strbuf_append_printf
        - lwan_strbuf_append_strz
        - lwan_strbuf_init
        - lwan_strbuf_to_value
        - strcaseequal_neutral
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:174,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan.c:176,5'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan.c:179,14'
          Dst:             can_override_header
        - Src:             '/src/lwan/src/lib/lwan.c:180,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan.c:182,17'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan.c:185,13'
          Dst:             lwan_strbuf_append_printf
        - Src:             '/src/lwan/src/lib/lwan.c:191,9'
          Dst:             lwan_strbuf_append_strz
        - Src:             '/src/lwan/src/lib/lwan.c:193,5'
          Dst:             lwan_strbuf_append_strz
        - Src:             '/src/lwan/src/lib/lwan.c:195,18'
          Dst:             lwan_strbuf_to_value
    - functionName:    parse_site
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - config_error
        - config_read_line
        - find_handler
        - find_module
        - parse_listener_prefix
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan.c:595,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:594,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan.c:597,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:603,33'
          Dst:             find_handler
        - Src:             '/src/lwan/src/lib/lwan.c:605,21'
          Dst:             parse_listener_prefix
        - Src:             '/src/lwan/src/lib/lwan.c:609,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:613,48'
          Dst:             find_module
        - Src:             '/src/lwan/src/lib/lwan.c:615,17'
          Dst:             parse_listener_prefix
        - Src:             '/src/lwan/src/lib/lwan.c:619,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:626,5'
          Dst:             config_error
    - functionName:    setup_from_config
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         117
      ICount:          696
      EdgeCount:       152
      CyclomaticComplexity: 37
      functionsReached:
        - config_close
        - config_cur_line
        - config_error
        - config_last_error
        - config_open
        - config_read_line
        - destroy_urlmap
        - lwan_get_config_path
        - lwan_log_critical_debug
        - lwan_log_info_debug
        - lwan_log_warning_debug
        - lwan_straitjacket_enforce_from_config
        - lwan_trie_init
        - parse_bool
        - parse_global_headers
        - parse_listener
        - parse_long
        - parse_site
        - parse_time_period
        - parse_tls_listener
        - strdup
        - streq
        - strstr
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan.c:650,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:639,16'
          Dst:             lwan_get_config_path
        - Src:             '/src/lwan/src/lib/lwan.c:640,5'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan.c:642,12'
          Dst:             config_open
        - Src:             '/src/lwan/src/lib/lwan.c:646,10'
          Dst:             lwan_trie_init
        - Src:             '/src/lwan/src/lib/lwan.c:646,10'
          Dst:             destroy_urlmap
        - Src:             '/src/lwan/src/lib/lwan.c:649,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan.c:652,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:653,65'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan.c:655,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:657,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan.c:658,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:660,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan.c:661,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:663,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan.c:664,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:666,21'
          Dst:             parse_time_period
        - Src:             '/src/lwan/src/lib/lwan.c:667,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:669,47'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan.c:670,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:672,21'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan.c:674,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:677,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:678,44'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan.c:682,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:685,21'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan.c:694,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:695,45'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan.c:699,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:701,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:707,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:708,43'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan.c:712,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:714,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:719,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:720,42'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan.c:724,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:726,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:730,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:733,21'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan.c:736,34'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan.c:737,33'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan.c:743,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:747,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:749,21'
          Dst:             parse_site
        - Src:             '/src/lwan/src/lib/lwan.c:752,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:754,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:754,60'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:755,17'
          Dst:             lwan_straitjacket_enforce_from_config
        - Src:             '/src/lwan/src/lib/lwan.c:756,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:757,17'
          Dst:             parse_global_headers
        - Src:             '/src/lwan/src/lib/lwan.c:758,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:760,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:762,21'
          Dst:             parse_listener
        - Src:             '/src/lwan/src/lib/lwan.c:765,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan.c:767,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:769,21'
          Dst:             parse_tls_listener
        - Src:             '/src/lwan/src/lib/lwan.c:773,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:777,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan.c:781,9'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan.c:782,9'
          Dst:             config_cur_line
        - Src:             '/src/lwan/src/lib/lwan.c:782,9'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan.c:782,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan.c:787,5'
          Dst:             config_close
    - functionName:    lwan_get_config_path
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getpid
        - proc_pidpath
        - snprintf
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:475,22'
          Dst:             getpid
        - Src:             '/src/lwan/src/lib/lwan.c:475,9'
          Dst:             proc_pidpath
        - Src:             '/src/lwan/src/lib/lwan.c:478,18'
          Dst:             strrchr
        - Src:             '/src/lwan/src/lib/lwan.c:481,15'
          Dst:             snprintf
    - functionName:    destroy_urlmap
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - hash_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:115,9'
          Dst:             hash_unref
    - functionName:    strstr
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constructor_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:900,1'
          Dst:             lwan_array_reset
    - functionName:    constructor_sort
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    constructor_array_sort
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:900,1'
          Dst:             lwan_array_sort
    - functionName:    constructor_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_heap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:900,1'
          Dst:             lwan_array_append_heap
    - functionName:    constructor_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_set_thread_name
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1083
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - getpid
        - proc_pidpath
        - pthread_self
        - pthread_set_name_np
        - snprintf
        - strrchr
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:1071,22'
          Dst:             getpid
        - Src:             '/src/lwan/src/lib/lwan.c:1071,9'
          Dst:             proc_pidpath
        - Src:             '/src/lwan/src/lib/lwan.c:1074,11'
          Dst:             strrchr
        - Src:             '/src/lwan/src/lib/lwan.c:1078,11'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan.c:1082,25'
          Dst:             pthread_self
        - Src:             '/src/lwan/src/lib/lwan.c:1082,5'
          Dst:             pthread_set_name_np
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_constructor_detect_fastest_monotonic_clock
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1056
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clock_gettime
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:1059,10'
          Dst:             clock_gettime
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_main_loop
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1041
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_job_thread_main_loop
        - lwan_log_info_debug
        - pthread_barrier_wait
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:1047,5'
          Dst:             pthread_barrier_wait
        - Src:             '/src/lwan/src/lib/lwan.c:1049,5'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan.c:1051,5'
          Dst:             lwan_job_thread_main_loop
    - functionName:    pthread_barrier_wait
      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:    lwan_always_bzero
      functionSourceFile: '/src/lwan/src/lib/lwan-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          88
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_always_bzero
        - lwan_http_authorize_shutdown
        - lwan_job_thread_shutdown
        - lwan_log_debug_debug
        - lwan_log_info_debug
        - lwan_log_shutdown
        - lwan_readahead_shutdown
        - lwan_response_shutdown
        - lwan_tables_shutdown
        - lwan_thread_shutdown
        - lwan_trie_destroy
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:1013,5'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan.c:1019,43'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan.c:1019,5'
          Dst:             lwan_always_bzero
        - Src:             '/src/lwan/src/lib/lwan.c:1021,42'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan.c:1021,5'
          Dst:             lwan_always_bzero
        - Src:             '/src/lwan/src/lib/lwan.c:1024,5'
          Dst:             lwan_job_thread_shutdown
        - Src:             '/src/lwan/src/lib/lwan.c:1025,5'
          Dst:             lwan_thread_shutdown
        - Src:             '/src/lwan/src/lib/lwan.c:1027,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan.c:1028,5'
          Dst:             lwan_trie_destroy
        - Src:             '/src/lwan/src/lib/lwan.c:1033,5'
          Dst:             lwan_response_shutdown
        - Src:             '/src/lwan/src/lib/lwan.c:1034,5'
          Dst:             lwan_tables_shutdown
        - Src:             '/src/lwan/src/lib/lwan.c:1035,5'
          Dst:             lwan_log_shutdown
        - Src:             '/src/lwan/src/lib/lwan.c:1036,5'
          Dst:             lwan_http_authorize_shutdown
        - Src:             '/src/lwan/src/lib/lwan.c:1037,5'
          Dst:             lwan_readahead_shutdown
    - functionName:    allocate_connections
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 856
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          47
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_aligned_alloc
        - lwan_log_critical_perror_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:859,16'
          Dst:             lwan_aligned_alloc
        - Src:             '/src/lwan/src/lib/lwan.c:861,9'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    setup_open_file_count_limits
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          169
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - getrlimit64
        - lwan_log_critical_debug
        - lwan_log_perror_debug
        - setrlimit64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:814,9'
          Dst:             getrlimit64
        - Src:             '/src/lwan/src/lib/lwan.c:815,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:836,13'
          Dst:             setrlimit64
        - Src:             '/src/lwan/src/lib/lwan.c:837,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:846,9'
          Dst:             lwan_log_critical_debug
    - functionName:    getrlimit64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setrlimit64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    try_setup_from_config
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          80
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_log_critical_debug
        - lwan_log_init
        - setup_from_config
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:795,10'
          Dst:             setup_from_config
        - Src:             '/src/lwan/src/lib/lwan.c:797,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan.c:802,5'
          Dst:             lwan_log_init
    - functionName:    get_number_of_cpus
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_log_warning_debug
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:868,26'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan.c:869,29'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan.c:872,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan.c:878,9'
          Dst:             lwan_log_warning_debug
    - functionName:    sysconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    call_constructors
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - constructor_array_append
        - constructor_array_init
        - constructor_array_reset
        - constructor_array_sort
        - constructor_sort
        - lwan_log_critical_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:915,5'
          Dst:             constructor_array_init
        - Src:             '/src/lwan/src/lib/lwan.c:919,13'
          Dst:             constructor_array_append
        - Src:             '/src/lwan/src/lib/lwan.c:921,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan.c:924,5'
          Dst:             constructor_array_sort
        - Src:             '/src/lwan/src/lib/lwan.c:924,5'
          Dst:             constructor_sort
        - Src:             '/src/lwan/src/lib/lwan.c:930,5'
          Dst:             constructor_array_reset
    - functionName:    dup_or_null
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 897
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strdup
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:897,16'
          Dst:             strdup
    - functionName:    lwan_get_default_config
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 892
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_init_with_config
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          233
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - allocate_connections
        - build_response_headers
        - call_constructors
        - dup_or_null
        - get_number_of_cpus
        - lwan_http_authorize_init
        - lwan_job_thread_init
        - lwan_log_debug_debug
        - lwan_log_info_debug
        - lwan_log_init
        - lwan_log_warning_debug
        - lwan_readahead_init
        - lwan_response_init
        - lwan_tables_init
        - lwan_thread_init
        - setup_open_file_count_limits
        - signal
        - try_setup_from_config
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:938,26'
          Dst:             dup_or_null
        - Src:             '/src/lwan/src/lib/lwan.c:939,34'
          Dst:             dup_or_null
        - Src:             '/src/lwan/src/lib/lwan.c:940,25'
          Dst:             dup_or_null
        - Src:             '/src/lwan/src/lib/lwan.c:941,26'
          Dst:             dup_or_null
        - Src:             '/src/lwan/src/lib/lwan.c:945,5'
          Dst:             lwan_log_init
        - Src:             '/src/lwan/src/lib/lwan.c:947,5'
          Dst:             call_constructors
        - Src:             '/src/lwan/src/lib/lwan.c:952,5'
          Dst:             lwan_job_thread_init
        - Src:             '/src/lwan/src/lib/lwan.c:953,5'
          Dst:             lwan_tables_init
        - Src:             '/src/lwan/src/lib/lwan.c:958,5'
          Dst:             get_number_of_cpus
        - Src:             '/src/lwan/src/lib/lwan.c:960,5'
          Dst:             try_setup_from_config
        - Src:             '/src/lwan/src/lib/lwan.c:963,9'
          Dst:             build_response_headers
        - Src:             '/src/lwan/src/lib/lwan.c:965,5'
          Dst:             lwan_response_init
        - Src:             '/src/lwan/src/lib/lwan.c:968,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan.c:984,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan.c:991,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan.c:997,29'
          Dst:             setup_open_file_count_limits
        - Src:             '/src/lwan/src/lib/lwan.c:998,5'
          Dst:             allocate_connections
        - Src:             '/src/lwan/src/lib/lwan.c:1001,5'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan.c:1004,5'
          Dst:             signal
        - Src:             '/src/lwan/src/lib/lwan.c:1006,5'
          Dst:             lwan_readahead_init
        - Src:             '/src/lwan/src/lib/lwan.c:1007,5'
          Dst:             lwan_http_authorize_init
        - Src:             '/src/lwan/src/lib/lwan.c:1008,5'
          Dst:             lwan_thread_init
    - functionName:    signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_init
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_init_with_config
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:888,34'
          Dst:             lwan_init_with_config
    - functionName:    lwan_detect_url_map
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          96
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - destroy_urlmap
        - lwan_log_critical_perror_debug
        - lwan_log_debug_debug
        - lwan_trie_destroy
        - lwan_trie_init
        - register_url_map
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:453,5'
          Dst:             lwan_trie_destroy
        - Src:             '/src/lwan/src/lib/lwan.c:454,9'
          Dst:             lwan_trie_init
        - Src:             '/src/lwan/src/lib/lwan.c:454,9'
          Dst:             destroy_urlmap
        - Src:             '/src/lwan/src/lib/lwan.c:455,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:461,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan.c:467,9'
          Dst:             register_url_map
    - functionName:    register_url_map
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          101
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - add_url_map
        - get_module_name
        - lwan_log_critical_debug
        - lwan_log_debug_debug
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:419,33'
          Dst:             add_url_map
        - Src:             '/src/lwan/src/lib/lwan.c:422,9'
          Dst:             get_module_name
        - Src:             '/src/lwan/src/lib/lwan.c:422,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan.c:427,13'
          Dst:             get_module_name
        - Src:             '/src/lwan/src/lib/lwan.c:427,13'
          Dst:             lwan_log_critical_debug
    - functionName:    lwan_set_url_map
      functionSourceFile: '/src/lwan/src/lib/lwan.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - destroy_urlmap
        - lwan_log_critical_perror_debug
        - lwan_trie_destroy
        - lwan_trie_init
        - register_url_map
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.c:440,5'
          Dst:             lwan_trie_destroy
        - Src:             '/src/lwan/src/lib/lwan.c:441,9'
          Dst:             lwan_trie_init
        - Src:             '/src/lwan/src/lib/lwan.c:441,9'
          Dst:             destroy_urlmap
        - Src:             '/src/lwan/src/lib/lwan.c:442,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan.c:445,9'
          Dst:             register_url_map
    - functionName:    list_prepend_list
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
        - list_del
        - list_head_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:594,32'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/list.h:595,30'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/list.h:604,2'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/list.h:605,2'
          Dst:             list_head_init
    - functionName:    list_del
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check_node
        - list_poison_node
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:360,8'
          Dst:             list_check_node
        - Src:             '/src/lwan/src/lib/list.h:365,2'
          Dst:             list_poison_node
    - functionName:    list_head_init
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_from_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_to_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_append_list
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
        - list_del
        - list_head_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:564,32'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/list.h:565,30'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/list.h:574,2'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/list.h:575,2'
          Dst:             list_head_init
    - functionName:    list_empty
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:340,8'
          Dst:             list_check
    - functionName:    cache_make_read_only
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_pruner_job
        - lwan_job_del
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:524,5'
          Dst:             lwan_job_del
        - Src:             '/src/lwan/src/lib/lwan-cache.c:524,5'
          Dst:             cache_pruner_job
    - functionName:    cache_pruner_job
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          334
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - clock_gettime
        - hash_del
        - list_append_list
        - list_check
        - list_del
        - list_empty
        - list_head_init
        - list_node_from_off_
        - list_node_to_off_
        - list_prepend_list
        - lwan_log_perror_debug
        - pthread_rwlock_trywrlock
        - pthread_rwlock_unlock
        - pthread_rwlock_wrlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:389,9'
          Dst:             pthread_rwlock_trywrlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:393,9'
          Dst:             list_empty
        - Src:             '/src/lwan/src/lib/lwan-cache.c:394,13'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:395,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:401,5'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/lwan-cache.c:402,5'
          Dst:             list_append_list
        - Src:             '/src/lwan/src/lib/lwan-cache.c:403,5'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/lwan-cache.c:405,9'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:406,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:410,9'
          Dst:             clock_gettime
        - Src:             '/src/lwan/src/lib/lwan-cache.c:411,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-cache.c:421,9'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-cache.c:423,13'
          Dst:             pthread_rwlock_wrlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:424,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:428,9'
          Dst:             hash_del
        - Src:             '/src/lwan/src/lib/lwan-cache.c:430,13'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:431,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-cache.c:415,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-cache.c:454,9'
          Dst:             list_empty
        - Src:             '/src/lwan/src/lib/lwan-cache.c:459,9'
          Dst:             pthread_rwlock_wrlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:460,9'
          Dst:             list_prepend_list
        - Src:             '/src/lwan/src/lib/lwan-cache.c:461,9'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:463,9'
          Dst:             lwan_log_perror_debug
    - functionName:    pthread_rwlock_trywrlock
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlock_unlock
      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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlock_wrlock
      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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cache_coro_get_and_ref_entry
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_coro_get_and_ref_entry_with_ctx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:518,12'
          Dst:             cache_coro_get_and_ref_entry_with_ctx
    - functionName:    cache_coro_get_and_ref_entry_with_ctx
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - cache_entry_unref_defer
        - cache_get_and_ref_entry_with_ctx
        - coro_defer2
        - coro_yield
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:485,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:490,13'
          Dst:             cache_get_and_ref_entry_with_ctx
        - Src:             '/src/lwan/src/lib/lwan-cache.c:498,13'
          Dst:             coro_defer2
        - Src:             '/src/lwan/src/lib/lwan-cache.c:498,13'
          Dst:             cache_entry_unref_defer
        - Src:             '/src/lwan/src/lib/lwan-cache.c:509,9'
          Dst:             coro_yield
    - functionName:    cache_get_and_ref_entry_with_ctx
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          377
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - __assert_fail
        - clock_gettime
        - hash_add_unique
        - hash_del
        - hash_find
        - list_add_tail
        - lwan_log_critical_debug
        - pthread_rwlock_tryrdlock
        - pthread_rwlock_trywrlock
        - pthread_rwlock_unlock
        - pthread_rwlock_wrlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:228,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:229,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:232,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:239,17'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-cache.c:254,9'
          Dst:             pthread_rwlock_tryrdlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:258,13'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-cache.c:261,9'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:269,5'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:292,9'
          Dst:             pthread_rwlock_trywrlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:302,10'
          Dst:             hash_add_unique
        - Src:             '/src/lwan/src/lib/lwan-cache.c:305,13'
          Dst:             clock_gettime
        - Src:             '/src/lwan/src/lib/lwan-cache.c:306,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:310,13'
          Dst:             pthread_rwlock_wrlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:311,13'
          Dst:             list_add_tail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:312,13'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-cache.c:321,13'
          Dst:             hash_del
        - Src:             '/src/lwan/src/lib/lwan-cache.c:333,5'
          Dst:             pthread_rwlock_unlock
    - functionName:    cache_entry_unref_defer
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_entry_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:475,5'
          Dst:             cache_entry_unref
    - functionName:    cache_entry_unref
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          131
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:345,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:370,9'
          Dst:             __assert_fail
    - functionName:    identity_key_copy
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlock_tryrdlock
      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:    list_add_tail
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:326,8'
          Dst:             list_check
    - functionName:    cache_get_and_ref_entry
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_get_and_ref_entry_with_ctx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:340,12'
          Dst:             cache_get_and_ref_entry_with_ctx
    - functionName:    cache_entry_is_new
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cache_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - cache_pruner_job
        - hash_unref
        - lwan_job_del
        - lwan_log_debug_debug
        - pthread_rwlock_destroy
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:199,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:202,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-cache.c:207,5'
          Dst:             lwan_job_del
        - Src:             '/src/lwan/src/lib/lwan-cache.c:207,5'
          Dst:             cache_pruner_job
        - Src:             '/src/lwan/src/lib/lwan-cache.c:209,5'
          Dst:             cache_pruner_job
        - Src:             '/src/lwan/src/lib/lwan-cache.c:210,5'
          Dst:             pthread_rwlock_destroy
        - Src:             '/src/lwan/src/lib/lwan-cache.c:211,5'
          Dst:             pthread_rwlock_destroy
        - Src:             '/src/lwan/src/lib/lwan-cache.c:212,5'
          Dst:             hash_unref
    - functionName:    pthread_rwlock_destroy
      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:    cache_create
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_create_full
        - hash_str_new
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:193,12'
          Dst:             cache_create_full
        - Src:             '/src/lwan/src/lib/lwan-cache.c:193,12'
          Dst:             hash_str_new
    - functionName:    cache_create_full
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          224
      EdgeCount:       44
      CyclomaticComplexity: 10
      functionsReached:
        - __assert_fail
        - cache_pruner_job
        - calloc
        - hash_unref
        - list_head_init
        - lwan_job_add
        - pthread_rwlock_destroy
        - pthread_rwlock_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:132,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:133,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:134,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-cache.c:136,13'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-cache.c:150,9'
          Dst:             pthread_rwlock_init
        - Src:             '/src/lwan/src/lib/lwan-cache.c:152,9'
          Dst:             pthread_rwlock_init
        - Src:             '/src/lwan/src/lib/lwan-cache.c:172,5'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/lwan-cache.c:174,5'
          Dst:             lwan_job_add
        - Src:             '/src/lwan/src/lib/lwan-cache.c:174,5'
          Dst:             cache_pruner_job
        - Src:             '/src/lwan/src/lib/lwan-cache.c:179,5'
          Dst:             pthread_rwlock_destroy
        - Src:             '/src/lwan/src/lib/lwan-cache.c:181,5'
          Dst:             hash_unref
    - functionName:    pthread_rwlock_init
      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:    str_key_copy
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-cache.c:99,12'
          Dst:             strdup
    - functionName:    str_key_free
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_value_key_copy
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_value_key_free
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    identity_key_free
      functionSourceFile: '/src/lwan/src/lib/lwan-cache.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 95
      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:    self_test_parse_time_period
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - parse_time_period
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:181,9'
          Dst:             parse_time_period
        - Src:             '/src/lwan/src/lib/lwan-config.c:181,9'
          Dst:             __assert_fail
    - functionName:    self_test_parse_i64
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         24
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - _parse_i64
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:244,9'
          Dst:             _parse_i64
        - Src:             '/src/lwan/src/lib/lwan-config.c:244,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:262,9'
          Dst:             _parse_i64
        - Src:             '/src/lwan/src/lib/lwan-config.c:262,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:263,9'
          Dst:             __assert_fail
    - functionName:    self_test_parse_i32
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         24
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - _parse_i32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:296,9'
          Dst:             _parse_i32
        - Src:             '/src/lwan/src/lib/lwan-config.c:296,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:314,9'
          Dst:             _parse_i32
        - Src:             '/src/lwan/src/lib/lwan-config.c:314,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:315,9'
          Dst:             __assert_fail
    - functionName:    self_test_parse_bool
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         33
      ICount:          124
      EdgeCount:       33
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - parse_bool
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:367,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:367,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:368,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:368,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:369,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:369,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:371,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:371,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:372,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:372,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:373,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:373,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:375,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:375,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:376,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:376,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:378,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:378,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-config.c:379,5'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-config.c:379,5'
          Dst:             __assert_fail
    - functionName:    parse_bool
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          86
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - parse_int
        - strcaseequal_neutral
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:354,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-config.c:355,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-config.c:355,46'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-config.c:358,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-config.c:359,9'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-config.c:359,47'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-config.c:362,12'
          Dst:             parse_int
    - functionName:    parse_int
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _parse_i32
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:334,18'
          Dst:             _parse_i32
    - functionName:    _parse_i32
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _parse_i64
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:272,9'
          Dst:             _parse_i64
    - functionName:    _parse_i64
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          202
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_time_period
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          180
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
        - __isoc23_sscanf
        - strchr
      functionUses:    3
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-config.c:137,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:124,13'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-config.c:134,13'
          Dst:             __isoc23_sscanf
        - Src:             '/src/lwan/src/lib/lwan-config.c:148,15'
          Dst:             strchr
    - 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:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __isoc23_sscanf
      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:    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:    config_ring_buffer_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_ring_buffer_get_ptr_or_null
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - config_ring_buffer_empty
        - config_ring_buffer_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:82,1'
          Dst:             config_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:82,1'
          Dst:             config_ring_buffer_mask
    - functionName:    config_ring_buffer_mask
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_constants
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 995
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - config_error
        - config_read_line
        - hash_add
        - lwan_log_critical_debug
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-config.c:973,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:972,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-config.c:975,23'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-config.c:976,23'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-config.c:979,17'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-config.c:981,13'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/lwan-config.c:989,13'
          Dst:             config_error
    - functionName:    config_read_line
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parser_next
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1133,41'
          Dst:             parser_next
    - functionName:    config_error
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - vasprintf
      functionUses:    101
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:392,11'
          Dst:             vasprintf
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parser_next
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - config_error
        - config_from_parser
        - config_last_error
        - parse_constants
        - parser_next_internal
        - streq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1000,39'
          Dst:             parser_next_internal
        - Src:             '/src/lwan/src/lib/lwan-config.c:1005,52'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-config.c:1006,13'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:1007,37'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:1009,17'
          Dst:             parse_constants
        - Src:             '/src/lwan/src/lib/lwan-config.c:1012,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:1012,20'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:1012,20'
          Dst:             config_error
    - functionName:    parser_next_internal
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - config_ring_buffer_get_ptr_or_null
        - lwan_strbuf_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:959,21'
          Dst:             config_ring_buffer_get_ptr_or_null
        - Src:             '/src/lwan/src/lib/lwan-config.c:962,9'
          Dst:             lwan_strbuf_reset
        - Src:             '/src/lwan/src/lib/lwan-config.c:967,12'
          Dst:             config_ring_buffer_get_ptr_or_null
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    config_from_parser
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    32
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_last_error
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_variable
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:544,12'
          Dst:             __ctype_b_loc
    - functionName:    lex_variable_default
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - advance_n
        - backup
        - config_error
        - config_from_lexer
        - emit
        - next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:552,15'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:555,13'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-config.c:556,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:558,13'
          Dst:             advance_n
        - Src:             '/src/lwan/src/lib/lwan-config.c:564,12'
          Dst:             config_from_lexer
        - Src:             '/src/lwan/src/lib/lwan-config.c:564,12'
          Dst:             config_error
    - functionName:    next
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          60
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    backup
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - current_len
        - emit_lexeme
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:419,57'
          Dst:             current_len
        - Src:             '/src/lwan/src/lib/lwan-config.c:421,5'
          Dst:             emit_lexeme
    - functionName:    advance_n
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ignore
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:448,5'
          Dst:             ignore
    - functionName:    lex_config
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          187
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - config_error
        - config_from_lexer
        - emit
        - ignore
        - is_string
        - lex_streq
        - next
        - peek
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:619,19'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:625,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:629,13'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-config.c:630,13'
          Dst:             ignore
        - Src:             '/src/lwan/src/lib/lwan-config.c:635,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:645,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:646,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:651,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:658,28'
          Dst:             lex_streq
        - Src:             '/src/lwan/src/lib/lwan-config.c:660,27'
          Dst:             lex_streq
        - Src:             '/src/lwan/src/lib/lwan-config.c:663,27'
          Dst:             peek
        - Src:             '/src/lwan/src/lib/lwan-config.c:666,13'
          Dst:             is_string
        - Src:             '/src/lwan/src/lib/lwan-config.c:669,16'
          Dst:             config_from_lexer
        - Src:             '/src/lwan/src/lib/lwan-config.c:669,16'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:672,5'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:673,5'
          Dst:             emit
    - functionName:    config_from_lexer
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - config_from_parser
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:513,12'
          Dst:             config_from_parser
    - functionName:    ignore
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lex_comment
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - backup
        - is_comment
        - next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:610,23'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:610,12'
          Dst:             is_comment
        - Src:             '/src/lwan/src/lib/lwan-config.c:612,5'
          Dst:             backup
    - functionName:    lex_streq
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - remaining
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:518,9'
          Dst:             remaining
        - Src:             '/src/lwan/src/lib/lwan-config.c:521,13'
          Dst:             strncmp
    - functionName:    lex_multiline_string
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - advance_n
        - config_error
        - config_from_lexer
        - emit
        - lex_streq
        - next
        - peek
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:526,24'
          Dst:             peek
        - Src:             '/src/lwan/src/lib/lwan-config.c:528,5'
          Dst:             advance_n
        - Src:             '/src/lwan/src/lib/lwan-config.c:531,13'
          Dst:             lex_streq
        - Src:             '/src/lwan/src/lib/lwan-config.c:532,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:537,14'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:539,12'
          Dst:             config_from_lexer
        - Src:             '/src/lwan/src/lib/lwan-config.c:539,12'
          Dst:             config_error
    - functionName:    peek
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - backup
        - next
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:461,15'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:463,5'
          Dst:             backup
    - functionName:    lex_variable
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - advance_n
        - backup
        - config_error
        - config_from_lexer
        - current_len
        - emit
        - is_variable
        - next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:571,5'
          Dst:             advance_n
        - Src:             '/src/lwan/src/lib/lwan-config.c:574,15'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:577,13'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-config.c:579,18'
          Dst:             current_len
        - Src:             '/src/lwan/src/lib/lwan-config.c:580,24'
          Dst:             config_from_lexer
        - Src:             '/src/lwan/src/lib/lwan-config.c:580,24'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:582,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:583,13'
          Dst:             advance_n
        - Src:             '/src/lwan/src/lib/lwan-config.c:588,13'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-config.c:590,18'
          Dst:             current_len
        - Src:             '/src/lwan/src/lib/lwan-config.c:591,24'
          Dst:             config_from_lexer
        - Src:             '/src/lwan/src/lib/lwan-config.c:591,24'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:593,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:594,13'
          Dst:             advance_n
        - Src:             '/src/lwan/src/lib/lwan-config.c:598,14'
          Dst:             is_variable
        - Src:             '/src/lwan/src/lib/lwan-config.c:600,12'
          Dst:             config_from_lexer
        - Src:             '/src/lwan/src/lib/lwan-config.c:600,12'
          Dst:             config_error
    - functionName:    is_string
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - __ctype_b_loc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:478,20'
          Dst:             __ctype_b_loc
    - functionName:    lex_string
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - advance_n
        - backup
        - emit
        - is_string
        - next
        - peek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:486,15'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-config.c:488,27'
          Dst:             peek
        - Src:             '/src/lwan/src/lib/lwan-config.c:489,13'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-config.c:490,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-config.c:492,13'
          Dst:             advance_n
        - Src:             '/src/lwan/src/lib/lwan-config.c:496,14'
          Dst:             is_string
        - Src:             '/src/lwan/src/lib/lwan-config.c:498,5'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-config.c:499,5'
          Dst:             emit
    - functionName:    current_len
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    remaining
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    36
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_comment
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lexeme_ring_buffer_try_put
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:406,9'
          Dst:             lexeme_ring_buffer_try_put
    - functionName:    lexeme_ring_buffer_try_put
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lexeme_ring_buffer_full
        - lexeme_ring_buffer_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:81,1'
          Dst:             lexeme_ring_buffer_full
        - Src:             '/src/lwan/src/lib/lwan-config.c:81,1'
          Dst:             lexeme_ring_buffer_mask
    - functionName:    lexeme_ring_buffer_full
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lexeme_ring_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:81,1'
          Dst:             lexeme_ring_buffer_size
    - functionName:    lexeme_ring_buffer_mask
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lexeme_ring_buffer_size
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_ring_buffer_size
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_ring_buffer_full
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - config_ring_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:82,1'
          Dst:             config_ring_buffer_size
    - functionName:    config_ring_buffer_try_put
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - config_ring_buffer_full
        - config_ring_buffer_mask
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:82,1'
          Dst:             config_ring_buffer_full
        - Src:             '/src/lwan/src/lib/lwan-config.c:82,1'
          Dst:             config_ring_buffer_mask
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_append_strz
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_append_str
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:65,43'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:65,12'
          Dst:             lwan_strbuf_append_str
    - functionName:    get_constant
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          92
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - config_error
        - config_from_parser
        - hash_find
        - secure_getenv
        - strnlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:701,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:701,16'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:705,28'
          Dst:             strnlen
        - Src:             '/src/lwan/src/lib/lwan-config.c:707,19'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:707,9'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-config.c:708,28'
          Dst:             secure_getenv
    - functionName:    strnlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    secure_getenv
      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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lexeme_ring_buffer_get_ptr_or_null
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lexeme_ring_buffer_empty
        - lexeme_ring_buffer_mask
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:81,1'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:81,1'
          Dst:             lexeme_ring_buffer_mask
    - functionName:    lexeme_ring_buffer_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_section_end
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - config_error
        - config_from_parser
        - config_ring_buffer_try_put
        - lexeme_ring_buffer_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:875,29'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:878,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:878,16'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:880,10'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:881,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:881,16'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:883,10'
          Dst:             config_ring_buffer_try_put
        - Src:             '/src/lwan/src/lib/lwan-config.c:884,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:884,16'
          Dst:             config_error
    - functionName:    parse_config
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          195
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - config_error
        - config_from_parser
        - lex_next
        - lexeme_ring_buffer_empty
        - lexeme_ring_buffer_try_put
      functionUses:    6
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-config.c:903,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:895,35'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-config.c:900,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:900,16'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:905,13'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:906,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:906,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:911,13'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:912,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:912,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:914,9'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:919,14'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:925,14'
          Dst:             lexeme_ring_buffer_try_put
        - Src:             '/src/lwan/src/lib/lwan-config.c:926,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:926,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:934,13'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:935,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:935,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:937,14'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:938,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:938,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:944,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:944,16'
          Dst:             config_error
    - functionName:    lex_next
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lexeme_ring_buffer_get_ptr_or_null
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:683,23'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
        - Src:             '/src/lwan/src/lib/lwan-config.c:689,12'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
    - functionName:    parse_key_value
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          362
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - config_error
        - config_from_parser
        - config_ring_buffer_try_put
        - get_constant
        - lex_next
        - lexeme_ring_buffer_empty
        - lexeme_ring_buffer_get_ptr_or_null
        - lwan_log_debug_debug
        - lwan_strbuf_append_char
        - lwan_strbuf_append_strz
        - lwan_strbuf_append_value
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-config.c:737,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:718,22'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
        - Src:             '/src/lwan/src/lib/lwan-config.c:720,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:720,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:722,9'
          Dst:             lwan_strbuf_append_value
        - Src:             '/src/lwan/src/lib/lwan-config.c:724,14'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:725,13'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-config.c:727,16'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-config.c:728,5'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-config.c:730,22'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-config.c:731,13'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-config.c:734,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:734,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:740,17'
          Dst:             get_constant
        - Src:             '/src/lwan/src/lib/lwan-config.c:742,24'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:742,24'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:749,13'
          Dst:             lwan_strbuf_append_strz
        - Src:             '/src/lwan/src/lib/lwan-config.c:756,17'
          Dst:             get_constant
        - Src:             '/src/lwan/src/lib/lwan-config.c:759,28'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-config.c:760,24'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:760,24'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:766,24'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:766,24'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:769,17'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-config.c:773,17'
          Dst:             lwan_strbuf_append_value
        - Src:             '/src/lwan/src/lib/lwan-config.c:775,17'
          Dst:             lwan_strbuf_append_strz
        - Src:             '/src/lwan/src/lib/lwan-config.c:782,13'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-config.c:787,17'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-config.c:789,13'
          Dst:             lwan_strbuf_append_value
        - Src:             '/src/lwan/src/lib/lwan-config.c:794,24'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-config.c:797,17'
          Dst:             config_ring_buffer_try_put
        - Src:             '/src/lwan/src/lib/lwan-config.c:800,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:800,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:804,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:804,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:807,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:807,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:811,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:811,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:821,12'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:821,12'
          Dst:             config_error
    - functionName:    parse_section
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          132
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - config_error
        - config_from_parser
        - config_ring_buffer_try_put
        - lexeme_ring_buffer_empty
        - lexeme_ring_buffer_get_ptr_or_null
        - lwan_strbuf_append_char
        - lwan_strbuf_append_value
        - lwan_strbuf_get_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:829,14'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
        - Src:             '/src/lwan/src/lib/lwan-config.c:831,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:831,16'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:833,5'
          Dst:             lwan_strbuf_append_value
        - Src:             '/src/lwan/src/lib/lwan-config.c:835,5'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-config.c:837,22'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
        - Src:             '/src/lwan/src/lib/lwan-config.c:839,20'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:839,20'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:841,9'
          Dst:             lwan_strbuf_append_value
        - Src:             '/src/lwan/src/lib/lwan-config.c:843,14'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-config.c:844,13'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-config.c:849,16'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-config.c:850,18'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-config.c:852,12'
          Dst:             config_ring_buffer_try_put
    - functionName:    parse_section_shorthand
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 870
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - config_error
        - config_from_parser
        - config_ring_buffer_try_put
        - parse_section
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:858,24'
          Dst:             parse_section
        - Src:             '/src/lwan/src/lib/lwan-config.c:863,13'
          Dst:             config_ring_buffer_try_put
        - Src:             '/src/lwan/src/lib/lwan-config.c:866,16'
          Dst:             config_from_parser
        - Src:             '/src/lwan/src/lib/lwan-config.c:866,16'
          Dst:             config_error
    - functionName:    lexeme_ring_buffer_init
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_ring_buffer_init
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_cur_line
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_skip_section
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1209
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - find_section_end
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1208,12'
          Dst:             find_section_end
    - functionName:    find_section_end
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1156
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          81
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - parser_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1144,20'
          Dst:             parser_next
    - functionName:    config_isolate_section
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          120
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - config_error
        - config_last_error
        - find_section_end
        - hash_ref
        - hash_unref
        - lwan_strbuf_free
        - lwan_strbuf_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1173,5'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan-config.c:1175,27'
          Dst:             hash_ref
        - Src:             '/src/lwan/src/lib/lwan-config.c:1185,10'
          Dst:             find_section_end
        - Src:             '/src/lwan/src/lib/lwan-config.c:1188,22'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:1186,9'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-config.c:1190,9'
          Dst:             hash_unref
        - Src:             '/src/lwan/src/lib/lwan-config.c:1191,9'
          Dst:             lwan_strbuf_free
    - functionName:    config_close
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_unref
        - lwan_strbuf_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1124,5'
          Dst:             hash_unref
        - Src:             '/src/lwan/src/lib/lwan-config.c:1127,5'
          Dst:             lwan_strbuf_free
    - functionName:    config_open_for_fuzzing
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - config_init_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1107,16'
          Dst:             config_init_data
    - functionName:    config_init_data
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1060
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          84
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - config_ring_buffer_init
        - hash_str_new
        - lexeme_ring_buffer_init
        - lwan_strbuf_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1076,25'
          Dst:             hash_str_new
        - Src:             '/src/lwan/src/lib/lwan-config.c:1081,5'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan-config.c:1082,5'
          Dst:             config_ring_buffer_init
        - Src:             '/src/lwan/src/lib/lwan-config.c:1083,5'
          Dst:             lexeme_ring_buffer_init
    - functionName:    config_open_path
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1022
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - fstat64
        - lwan_log_perror_debug
        - mmap64
        - munmap
        - open64
        - set_vma_anon_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1028,10'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-config.c:1030,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-config.c:1034,9'
          Dst:             fstat64
        - Src:             '/src/lwan/src/lib/lwan-config.c:1035,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-config.c:1039,14'
          Dst:             mmap64
        - Src:             '/src/lwan/src/lib/lwan-config.c:1040,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-config.c:1044,5'
          Dst:             set_vma_anon_name
        - Src:             '/src/lwan/src/lib/lwan-config.c:1048,9'
          Dst:             munmap
    - functionName:    open64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fstat64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    32
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mmap64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    munmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    config_open
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1095
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - config_init_data
        - config_open_path
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:1094,14'
          Dst:             config_open_path
        - Src:             '/src/lwan/src/lib/lwan-config.c:1095,21'
          Dst:             config_init_data
    - functionName:    parse_long
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_long_long
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:345,22'
          Dst:             parse_long_long
    - functionName:    parse_long_long
      functionSourceFile: '/src/lwan/src/lib/lwan-config.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _parse_i64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-config.c:324,18'
          Dst:             _parse_i64
    - functionName:    self_test_sizes_are_same
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - sysconf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:70,5'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:70,5'
          Dst:             __assert_fail
    - functionName:    coro_entry_point
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:203,18'
          Dst:             coro_yield
    - functionName:    disarmed_defer
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      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:    coro_defer_array_len
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_printf
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          91
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - coro_defer_array_append
        - coro_defer_array_get_elem_index
        - lwan_log_error_debug
        - vasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:516,11'
          Dst:             vasprintf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:522,5'
          Dst:             coro_defer_array_append
        - Src:             '/src/lwan/src/lib/lwan-coro.c:522,5'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-coro.c:522,5'
          Dst:             coro_defer_array_get_elem_index
    - functionName:    coro_defer_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_inline
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:91,1'
          Dst:             lwan_array_append_inline
    - functionName:    coro_defer_array_get_elem_index
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:91,1'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:91,1'
          Dst:             __assert_fail
    - functionName:    coro_strdup
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coro_memdup
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:506,35'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-coro.c:506,12'
          Dst:             coro_memdup
    - functionName:    coro_memdup
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_malloc
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:528,17'
          Dst:             coro_malloc
    - functionName:    coro_malloc
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arena_alloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:490,12'
          Dst:             arena_alloc
    - functionName:    coro_strndup
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 501
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_memdup
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:495,24'
          Dst:             strnlen
        - Src:             '/src/lwan/src/lib/lwan-coro.c:496,17'
          Dst:             coro_memdup
    - functionName:    coro_malloc_full
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          84
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - coro_defer_array_append
        - coro_defer_array_get_elem_index
        - lwan_log_error_debug
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:483,9'
          Dst:             coro_defer_array_append
        - Src:             '/src/lwan/src/lib/lwan-coro.c:483,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-coro.c:483,9'
          Dst:             coro_defer_array_get_elem_index
    - functionName:    coro_defer2
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_defer_array_append
        - coro_defer_array_get_elem_index
        - lwan_log_error_debug
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:461,32'
          Dst:             coro_defer_array_append
        - Src:             '/src/lwan/src/lib/lwan-coro.c:464,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-coro.c:474,27'
          Dst:             coro_defer_array_get_elem_index
    - functionName:    coro_defer
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_defer_array_append
        - coro_defer_array_get_elem_index
        - lwan_log_error_debug
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:443,32'
          Dst:             coro_defer_array_append
        - Src:             '/src/lwan/src/lib/lwan-coro.c:446,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-coro.c:455,27'
          Dst:             coro_defer_array_get_elem_index
    - functionName:    coro_defer_fire_and_disarm
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - coro_defer_array_get_elem
        - coro_defer_disarm_internal
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:427,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:429,32'
          Dst:             coro_defer_array_get_elem
        - Src:             '/src/lwan/src/lib/lwan-coro.c:430,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:437,12'
          Dst:             coro_defer_disarm_internal
    - functionName:    coro_defer_array_get_elem
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:91,1'
          Dst:             __assert_fail
    - functionName:    coro_defer_disarm_internal
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - coro_defer_array_get_elem
        - coro_defer_array_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:401,31'
          Dst:             coro_defer_array_len
        - Src:             '/src/lwan/src/lib/lwan-coro.c:403,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:405,18'
          Dst:             coro_defer_array_get_elem
    - functionName:    coro_defer_disarm
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - coro_defer_array_get_elem
        - coro_defer_disarm_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:419,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:422,15'
          Dst:             coro_defer_array_get_elem
        - Src:             '/src/lwan/src/lib/lwan-coro.c:421,12'
          Dst:             coro_defer_disarm_internal
    - functionName:    coro_free
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - arena_reset
        - coro_defer_array_reset
        - coro_deferred_run
        - munmap
        - sysconf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:376,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:378,5'
          Dst:             coro_deferred_run
        - Src:             '/src/lwan/src/lib/lwan-coro.c:379,5'
          Dst:             arena_reset
        - Src:             '/src/lwan/src/lib/lwan-coro.c:380,5'
          Dst:             coro_defer_array_reset
        - Src:             '/src/lwan/src/lib/lwan-coro.c:387,38'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:387,18'
          Dst:             munmap
        - Src:             '/src/lwan/src/lib/lwan-coro.c:388,5'
          Dst:             __assert_fail
    - functionName:    coro_deferred_run
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          95
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_defer_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:91,1'
          Dst:             lwan_array_reset
    - functionName:    coro_resume_value
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - coro_swapcontext
        - sysconf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:358,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:361,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:361,12'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:361,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:361,12'
          Dst:             coro_swapcontext
    - functionName:    coro_swapcontext
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_resume
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - coro_swapcontext
        - sysconf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:343,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:346,5'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:346,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:351,5'
          Dst:             coro_swapcontext
    - functionName:    coro_defer_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_aligned_alloc
      functionSourceFile: '/src/lwan/src/lib/lwan-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - posix_memalign
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-private.h:289,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-private.h:290,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-private.h:293,9'
          Dst:             posix_memalign
    - functionName:    coro_new
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          90
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - arena_init
        - coro_defer_array_init
        - coro_reset
        - lwan_aligned_alloc
        - mmap64
        - munmap
        - set_vma_anon_name
        - sysconf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:306,30'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:306,19'
          Dst:             mmap64
        - Src:             '/src/lwan/src/lib/lwan-coro.c:311,30'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:311,5'
          Dst:             set_vma_anon_name
        - Src:             '/src/lwan/src/lib/lwan-coro.c:313,12'
          Dst:             lwan_aligned_alloc
        - Src:             '/src/lwan/src/lib/lwan-coro.c:315,23'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-coro.c:315,9'
          Dst:             munmap
        - Src:             '/src/lwan/src/lib/lwan-coro.c:327,5'
          Dst:             coro_defer_array_init
        - Src:             '/src/lwan/src/lib/lwan-coro.c:328,5'
          Dst:             arena_init
        - Src:             '/src/lwan/src/lib/lwan-coro.c:331,5'
          Dst:             coro_reset
    - functionName:    coro_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          68
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arena_reset
        - coro_defer_array_reset
        - coro_deferred_run
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:256,5'
          Dst:             coro_deferred_run
        - Src:             '/src/lwan/src/lib/lwan-coro.c:257,5'
          Dst:             arena_reset
        - Src:             '/src/lwan/src/lib/lwan-coro.c:258,5'
          Dst:             coro_defer_array_reset
        - Src:             '/src/lwan/src/lib/lwan-coro.c:273,40'
          Dst:             sysconf
    - functionName:    coro_entry_point_x86_64
      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:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_deferred_get_generation
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coro_yield
      functionSourceFile: '/src/lwan/src/lib/lwan-coro.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - coro_swapcontext
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-coro.c:366,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-coro.c:369,5'
          Dst:             coro_swapcontext
    - functionName:    uint8_ring_buffer_mask
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uint8_ring_buffer_full
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uint8_ring_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:310,1'
          Dst:             uint8_ring_buffer_size
    - functionName:    uint8_ring_buffer_size
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __bswap_32
      functionSourceFile: '/usr/include/x86_64-linux-gnu/bits/byteswap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __bswap_64
      functionSourceFile: '/usr/include/x86_64-linux-gnu/bits/byteswap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read32be
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __bswap_32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:53,12'
          Dst:             __bswap_32
    - functionName:    read64be
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __bswap_64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:46,12'
          Dst:             __bswap_64
    - functionName:    lwan_h2_huffman_decode_for_fuzzing
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_h2_huffman_init
        - lwan_h2_huffman_next
        - uint8_ring_buffer_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:426,5'
          Dst:             lwan_h2_huffman_init
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:429,29'
          Dst:             lwan_h2_huffman_next
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:436,9'
          Dst:             uint8_ring_buffer_init
    - functionName:    lwan_h2_huffman_init
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uint8_ring_buffer_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:325,5'
          Dst:             uint8_ring_buffer_init
    - functionName:    lwan_h2_huffman_next
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         50
      ICount:          351
      EdgeCount:       70
      CyclomaticComplexity: 22
      functionsReached:
        - __assert_fail
        - consume
        - next_level0
        - next_level1
        - next_level2
        - peek_byte
        - uint8_ring_buffer_size
        - uint8_ring_buffer_try_put_copy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:334,31'
          Dst:             peek_byte
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:336,18'
          Dst:             uint8_ring_buffer_try_put_copy
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:339,13'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:340,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:344,14'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:347,48'
          Dst:             next_level0
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:348,23'
          Dst:             peek_byte
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:350,18'
          Dst:             uint8_ring_buffer_try_put_copy
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:353,18'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:358,14'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:361,48'
          Dst:             next_level1
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:362,23'
          Dst:             peek_byte
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:364,18'
          Dst:             uint8_ring_buffer_try_put_copy
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:367,18'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:372,14'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:375,48'
          Dst:             next_level2
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:377,27'
          Dst:             peek_byte
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:383,22'
          Dst:             uint8_ring_buffer_try_put_copy
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:386,22'
          Dst:             consume
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:397,37'
          Dst:             peek_byte
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:406,13'
          Dst:             uint8_ring_buffer_try_put_copy
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:419,21'
          Dst:             uint8_ring_buffer_size
    - functionName:    uint8_ring_buffer_init
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    peek_byte
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          160
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - read32be
        - read64be
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:282,31'
          Dst:             read64be
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:287,31'
          Dst:             read32be
    - functionName:    uint8_ring_buffer_try_put_copy
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - uint8_ring_buffer_full
        - uint8_ring_buffer_mask
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:310,1'
          Dst:             uint8_ring_buffer_full
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:310,1'
          Dst:             uint8_ring_buffer_mask
    - functionName:    consume
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-h2-huffman.c:303,5'
          Dst:             __assert_fail
    - functionName:    next_level0
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    next_level1
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    next_level2
      functionSourceFile: '/src/lwan/src/lib/lwan-h2-huffman.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-h2-huffman.c:245,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    lwan_always_bzero
      functionSourceFile: '/src/lwan/src/lib/lwan-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    zero_and_free
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_always_bzero
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:42,32'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:42,9'
          Dst:             lwan_always_bzero
    - functionName:    authorize
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          116
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - base64_decode
        - cache_coro_get_and_ref_entry
        - hash_find
        - memchr
        - streq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:156,43'
          Dst:             cache_coro_get_and_ref_entry
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:161,15'
          Dst:             base64_decode
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:165,13'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:172,23'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:174,23'
          Dst:             streq
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_http_authorize
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - authorize
        - coro_memdup
        - coro_printf
        - lwan_request_get_header
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:188,9'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:190,9'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:192,29'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:194,13'
          Dst:             authorize
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:200,10'
          Dst:             coro_printf
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:204,9'
          Dst:             coro_memdup
    - functionName:    lwan_http_authorize_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:141,43'
          Dst:             cache_destroy
    - functionName:    destroy_realm_file
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_unref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:129,5'
          Dst:             hash_unref
    - functionName:    create_realm_file
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          185
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - config_close
        - config_cur_line
        - config_error
        - config_last_error
        - config_open_for_fuzzing
        - config_read_line
        - hash_add_unique
        - hash_str_new
        - hash_unref
        - lwan_log_error_debug
        - lwan_log_warning_debug
        - strdup
        - zero_and_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-http-authorize.c:75,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:58,20'
          Dst:             hash_str_new
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:58,20'
          Dst:             zero_and_free
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:58,20'
          Dst:             zero_and_free
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:65,9'
          Dst:             config_open_for_fuzzing
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:73,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:77,30'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:81,30'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:87,23'
          Dst:             hash_add_unique
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:91,13'
          Dst:             zero_and_free
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:92,13'
          Dst:             zero_and_free
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:95,17'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:103,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:108,9'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:109,9'
          Dst:             config_cur_line
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:109,9'
          Dst:             config_last_error
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:109,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:114,5'
          Dst:             config_close
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:118,5'
          Dst:             config_close
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:120,5'
          Dst:             hash_unref
    - functionName:    lwan_http_authorize_init
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_create
        - create_realm_file
        - destroy_realm_file
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:136,9'
          Dst:             cache_create
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:136,9'
          Dst:             create_realm_file
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.c:136,9'
          Dst:             destroy_realm_file
    - functionName:    lwan_sendfile_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          172
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - __errno_location
        - lwan_readahead_queue
        - lwan_request_await_write
        - lwan_send_fd
        - sendfile64
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-io-wrappers.c:253,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:244,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:246,9'
          Dst:             lwan_send_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:251,27'
          Dst:             sendfile64
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:253,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:258,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:266,13'
          Dst:             lwan_readahead_queue
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:269,9'
          Dst:             lwan_request_await_write
    - functionName:    lwan_send_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - lwan_request_await_write
        - send
      functionUses:    5
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-io-wrappers.c:167,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:163,27'
          Dst:             send
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:167,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:172,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:181,9'
          Dst:             lwan_request_await_write
    - functionName:    sendfile64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_recv_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - lwan_request_await_read
        - recv
      functionUses:    6
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-io-wrappers.c:197,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:193,25'
          Dst:             recv
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:197,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:204,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:213,9'
          Dst:             lwan_request_await_read
    - functionName:    recv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_readv_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          231
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lwan_recv_fd
        - lwan_request_await_read
        - recvmsg
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-io-wrappers.c:119,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:107,20'
          Dst:             lwan_recv_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:114,30'
          Dst:             recvmsg
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:119,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:124,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:145,9'
          Dst:             lwan_request_await_read
    - functionName:    recvmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_writev_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          245
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - lwan_request_await_read
        - lwan_send_fd
        - sendmsg
      functionUses:    3
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-io-wrappers.c:63,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:49,20'
          Dst:             lwan_send_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:57,19'
          Dst:             sendmsg
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:63,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:68,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.c:88,9'
          Dst:             lwan_request_await_read
    - functionName:    sendmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_job_del
      functionSourceFile: '/src/lwan/src/lib/lwan-job.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - list_check
        - list_del
        - list_node_from_off_
        - list_node_to_off_
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-job.c:167,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-job.c:169,9'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:172,17'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:170,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:176,9'
          Dst:             pthread_mutex_unlock
    - functionName:    pthread_mutex_lock
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_to_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_from_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_del
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check_node
        - list_poison_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:360,8'
          Dst:             list_check_node
        - Src:             '/src/lwan/src/lib/list.h:365,2'
          Dst:             list_poison_node
    - functionName:    pthread_mutex_unlock
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_add
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:307,8'
          Dst:             list_check
    - functionName:    lwan_job_add
      functionSourceFile: '/src/lwan/src/lib/lwan-job.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - calloc
        - list_add
        - lwan_log_critical_perror_debug
        - lwan_log_warning_debug
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-job.c:145,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-job.c:147,23'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-job.c:149,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-job.c:154,9'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-job.c:155,9'
          Dst:             list_add
        - Src:             '/src/lwan/src/lib/lwan-job.c:156,9'
          Dst:             pthread_mutex_unlock
        - Src:             '/src/lwan/src/lib/lwan-job.c:158,9'
          Dst:             lwan_log_warning_debug
    - functionName:    lwan_job_thread_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-job.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - list_check
        - list_del
        - list_node_from_off_
        - list_node_to_off_
        - lwan_log_debug_debug
        - lwan_log_perror_debug
        - pthread_cond_signal
        - pthread_join
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-job.c:119,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-job.c:121,9'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:126,13'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:125,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:131,9'
          Dst:             pthread_cond_signal
        - Src:             '/src/lwan/src/lib/lwan-job.c:133,13'
          Dst:             pthread_join
        - Src:             '/src/lwan/src/lib/lwan-job.c:135,13'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-job.c:136,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-job.c:139,9'
          Dst:             pthread_mutex_unlock
    - functionName:    pthread_cond_signal
      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:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_head_init
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_job_thread_init
      functionSourceFile: '/src/lwan/src/lib/lwan-job.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - list_head_init
        - lwan_log_debug_debug
        - lwan_log_perror_debug
        - pthread_self
        - pthread_setschedparam
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-job.c:99,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-job.c:101,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-job.c:103,5'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/lwan-job.c:105,12'
          Dst:             pthread_self
        - Src:             '/src/lwan/src/lib/lwan-job.c:112,9'
          Dst:             pthread_setschedparam
        - Src:             '/src/lwan/src/lib/lwan-job.c:113,9'
          Dst:             lwan_log_perror_debug
    - functionName:    pthread_setschedparam
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timedwait
      functionSourceFile: '/src/lwan/src/lib/lwan-job.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - gettimeofday
        - pthread_cond_timedwait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-job.c:60,5'
          Dst:             gettimeofday
        - Src:             '/src/lwan/src/lib/lwan-job.c:63,5'
          Dst:             pthread_cond_timedwait
    - functionName:    gettimeofday
      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:    pthread_cond_timedwait
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ioprio_set
      functionSourceFile: '/src/lwan/src/lib/missing/ioprio.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/ioprio.h:34,17'
          Dst:             syscall
    - functionName:    syscall
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_job_thread_main_loop
      functionSourceFile: '/src/lwan/src/lib/lwan-job.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - ioprio_set
        - list_check
        - list_node_from_off_
        - list_node_to_off_
        - lwan_log_critical_debug
        - lwan_set_thread_name
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - timedwait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-job.c:71,5'
          Dst:             ioprio_set
        - Src:             '/src/lwan/src/lib/lwan-job.c:73,5'
          Dst:             lwan_set_thread_name
        - Src:             '/src/lwan/src/lib/lwan-job.c:75,9'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-job.c:76,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-job.c:81,13'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-job.c:84,13'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-job.c:84,13'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:84,13'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:84,13'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:84,13'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-job.c:87,13'
          Dst:             pthread_mutex_unlock
        - Src:             '/src/lwan/src/lib/lwan-job.c:90,9'
          Dst:             timedwait
        - Src:             '/src/lwan/src/lib/lwan-job.c:93,9'
          Dst:             pthread_mutex_unlock
        - Src:             '/src/lwan/src/lib/lwan-job.c:94,9'
          Dst:             lwan_log_critical_debug
    - functionName:    lwan_pubsub_msg_ref_ring_get
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - lwan_pubsub_msg_ref_ring_empty
        - lwan_pubsub_msg_ref_ring_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_empty
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_mask
    - functionName:    lwan_pubsub_msg_ref_ring_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_msg_ref_ring_mask
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_del
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check_node
        - list_poison_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:360,8'
          Dst:             list_check_node
        - Src:             '/src/lwan/src/lib/list.h:365,2'
          Dst:             list_poison_node
    - functionName:    lwan_pubsub_msg_ref_ring_size
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_msg_ref_ring_full
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_pubsub_msg_ref_ring_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_size
    - functionName:    list_empty
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:340,8'
          Dst:             list_check
    - functionName:    list_add_tail
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:326,8'
          Dst:             list_check
    - functionName:    lwan_pubsub_msg_ref_ring_put
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - lwan_pubsub_msg_ref_ring_full
        - lwan_pubsub_msg_ref_ring_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_full
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_mask
    - functionName:    lwan_pubsub_msg_ref_ring_init
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_msg_ref_ring_try_put
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_pubsub_msg_ref_ring_full
        - lwan_pubsub_msg_ref_ring_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_full
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:47,1'
          Dst:             lwan_pubsub_msg_ref_ring_mask
    - functionName:    list_tail_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:486,6'
          Dst:             list_empty
    - functionName:    lwan_pubsub_queue_put
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - list_add_tail
        - list_tail_
        - lwan_pubsub_msg_ref_ring_init
        - lwan_pubsub_msg_ref_ring_put
        - lwan_pubsub_msg_ref_ring_try_put
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:73,11'
          Dst:             list_tail_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:80,13'
          Dst:             lwan_pubsub_msg_ref_ring_try_put
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:88,5'
          Dst:             lwan_pubsub_msg_ref_ring_init
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:89,5'
          Dst:             lwan_pubsub_msg_ref_ring_put
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:90,5'
          Dst:             list_add_tail
    - functionName:    lwan_pubsub_get_notification_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - eventfd
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:354,19'
          Dst:             eventfd
    - functionName:    eventfd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_msg_value
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_unsubscribe
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_pubsub_unsubscribe_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:342,18'
          Dst:             lwan_pubsub_unsubscribe_internal
    - functionName:    lwan_pubsub_unsubscribe_internal
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          125
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - list_del
        - lwan_pubsub_msg_done
        - lwan_pubsub_queue_get
        - pthread_mutex_destroy
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - pthread_rwlock_unlock
        - pthread_rwlock_wrlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:317,9'
          Dst:             pthread_rwlock_wrlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:318,5'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:320,9'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:322,5'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:323,20'
          Dst:             lwan_pubsub_queue_get
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:324,9'
          Dst:             lwan_pubsub_msg_done
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:325,5'
          Dst:             pthread_mutex_unlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:327,5'
          Dst:             pthread_mutex_destroy
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:330,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:331,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:333,9'
          Dst:             close
    - functionName:    lwan_pubsub_queue_get
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          117
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - list_check
        - list_del
        - list_node_from_off_
        - list_node_to_off_
        - lwan_pubsub_msg_ref_ring_empty
        - lwan_pubsub_msg_ref_ring_get
        - lwan_pubsub_msg_ref_ring_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:103,13'
          Dst:             lwan_pubsub_msg_ref_ring_empty
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:104,13'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:109,15'
          Dst:             lwan_pubsub_msg_ref_ring_get
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:130,18'
          Dst:             lwan_pubsub_msg_ref_ring_empty
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:133,28'
          Dst:             lwan_pubsub_msg_ref_ring_get
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:134,17'
          Dst:             lwan_pubsub_msg_ref_ring_put
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:100,5'
          Dst:             list_node_to_off_
    - functionName:    lwan_pubsub_msg_done
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_destroy
      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:    list_node_to_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_from_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_consume
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_pubsub_queue_get
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - read
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:298,5'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:299,11'
          Dst:             lwan_pubsub_queue_get
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:300,5'
          Dst:             pthread_mutex_unlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:304,9'
          Dst:             read
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_add
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:307,8'
          Dst:             list_check
    - functionName:    lwan_pubsub_queue_init
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_head_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:65,5'
          Dst:             list_head_init
    - functionName:    list_head_init
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_subscribe
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - list_add
        - lwan_pubsub_queue_init
        - pthread_mutex_init
        - pthread_rwlock_unlock
        - pthread_rwlock_wrlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:276,42'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:284,5'
          Dst:             pthread_mutex_init
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:285,5'
          Dst:             lwan_pubsub_queue_init
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:287,5'
          Dst:             pthread_rwlock_wrlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:288,5'
          Dst:             list_add
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:289,5'
          Dst:             pthread_rwlock_unlock
    - functionName:    pthread_mutex_init
      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:    lwan_pubsub_publishf
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_pubsub_publish_value
        - vasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:263,11'
          Dst:             vasprintf
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:270,12'
          Dst:             lwan_pubsub_publish_value
    - functionName:    lwan_pubsub_publish_value
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          172
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - list_check
        - list_node_from_off_
        - list_node_to_off_
        - lwan_log_perror_debug
        - lwan_log_warning_debug
        - lwan_pubsub_msg_done
        - lwan_pubsub_queue_put
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - pthread_rwlock_rdlock
        - pthread_rwlock_unlock
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:198,5'
          Dst:             pthread_rwlock_rdlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:199,5'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:199,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:199,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:203,9'
          Dst:             pthread_mutex_lock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:204,14'
          Dst:             lwan_pubsub_queue_put
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:205,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:208,9'
          Dst:             pthread_mutex_unlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:215,17'
          Dst:             write
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:221,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:221,39'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:223,17'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:199,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:199,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:228,5'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:230,5'
          Dst:             lwan_pubsub_msg_done
    - functionName:    pthread_rwlock_rdlock
      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:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    my_memdup
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_pubsub_publish
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_pubsub_publish_value
        - my_memdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:246,48'
          Dst:             my_memdup
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:251,12'
          Dst:             lwan_pubsub_publish_value
    - functionName:    lwan_pubsub_free_topic
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          67
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - list_check
        - list_node_from_off_
        - list_node_to_off_
        - lwan_pubsub_unsubscribe_internal
        - pthread_rwlock_destroy
        - pthread_rwlock_unlock
        - pthread_rwlock_wrlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:165,5'
          Dst:             pthread_rwlock_wrlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:167,9'
          Dst:             lwan_pubsub_unsubscribe_internal
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:166,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:168,5'
          Dst:             pthread_rwlock_unlock
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:170,5'
          Dst:             pthread_rwlock_destroy
    - functionName:    lwan_pubsub_new_topic
      functionSourceFile: '/src/lwan/src/lib/lwan-pubsub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - list_head_init
        - pthread_rwlock_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:150,39'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:155,5'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/lwan-pubsub.c:156,5'
          Dst:             pthread_rwlock_init
    - functionName:    ioprio_set
      functionSourceFile: '/src/lwan/src/lib/missing/ioprio.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/ioprio.h:34,17'
          Dst:             syscall
    - functionName:    lwan_readahead_loop
      functionSourceFile: '/src/lwan/src/lib/lwan-readahead.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          162
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioprio_set
        - lwan_log_perror_debug
        - lwan_log_warning_debug
        - lwan_set_thread_name
        - madvise
        - mlock
        - read
        - readahead
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-readahead.c:159,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:134,5'
          Dst:             ioprio_set
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:136,5'
          Dst:             lwan_set_thread_name
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:140,27'
          Dst:             read
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:144,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:144,36'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:146,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:151,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:161,17'
          Dst:             readahead
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:165,17'
          Dst:             madvise
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:173,21'
          Dst:             mlock
    - functionName:    readahead
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    madvise
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_readahead_init
      functionSourceFile: '/src/lwan/src/lib/lwan-readahead.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         19
      ICount:          91
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - close
        - fcntl64
        - lwan_log_debug_debug
        - lwan_log_perror_debug
        - lwan_log_warning_debug
        - lwan_readahead_loop
        - pipe2
        - pthread_create
        - pthread_setschedparam
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:194,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:196,9'
          Dst:             pipe2
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:197,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:202,13'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:204,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:208,9'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:209,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:214,9'
          Dst:             pthread_create
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:214,9'
          Dst:             lwan_readahead_loop
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:215,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:221,9'
          Dst:             pthread_setschedparam
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:222,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:229,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:230,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:243,5'
          Dst:             lwan_log_warning_debug
    - functionName:    pipe2
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_madvise_queue
      functionSourceFile: '/src/lwan/src/lib/lwan-readahead.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:125,5'
          Dst:             write
    - functionName:    lwan_readahead_queue
      functionSourceFile: '/src/lwan/src/lib/lwan-readahead.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:108,5'
          Dst:             write
    - functionName:    lwan_readahead_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-readahead.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - lwan_log_debug_debug
        - pthread_join
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:82,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:86,5'
          Dst:             write
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:88,5'
          Dst:             pthread_join
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:90,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:91,5'
          Dst:             close
    - functionName:    lwan_constructor_get_page_size
      functionSourceFile: '/src/lwan/src/lib/lwan-readahead.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sysconf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-readahead.c:65,15'
          Dst:             sysconf
    - functionName:    fuzz_parse_http_request
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     externalLinkage
      functionLinenumber: 1958
      functionLinenumberEnd: 2042
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          353
      EdgeCount:       58
      CyclomaticComplexity: 11
      functionsReached:
        - coro_deferred_get_generation
        - coro_deferred_run
        - coro_new
        - lwan_http_authorize
        - lwan_http_authorize_init
        - lwan_job_thread_init
        - lwan_request_get_cookie
        - lwan_request_get_header
        - lwan_request_get_post_param
        - lwan_request_get_query_param
        - parse_accept_encoding
        - parse_http_request
        - parse_if_modified_since
        - parse_range
        - prepare_websocket_handshake
        - request_seems_complete
        - useless_coro_for_fuzzing
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1969,16'
          Dst:             coro_new
        - Src:             '/src/lwan/src/lib/lwan-request.c:1969,16'
          Dst:             useless_coro_for_fuzzing
        - Src:             '/src/lwan/src/lib/lwan-request.c:1971,9'
          Dst:             lwan_job_thread_init
        - Src:             '/src/lwan/src/lib/lwan-request.c:1972,9'
          Dst:             lwan_http_authorize_init
        - Src:             '/src/lwan/src/lib/lwan-request.c:1991,10'
          Dst:             request_seems_complete
        - Src:             '/src/lwan/src/lib/lwan-request.c:1997,9'
          Dst:             parse_http_request
        - Src:             '/src/lwan/src/lib/lwan-request.c:2003,18'
          Dst:             coro_deferred_get_generation
        - Src:             '/src/lwan/src/lib/lwan-request.c:2006,5'
          Dst:             parse_accept_encoding
        - Src:             '/src/lwan/src/lib/lwan-request.c:2010,5'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:2013,5'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:2015,5'
          Dst:             lwan_request_get_cookie
        - Src:             '/src/lwan/src/lib/lwan-request.c:2017,5'
          Dst:             lwan_request_get_cookie
        - Src:             '/src/lwan/src/lib/lwan-request.c:2019,5'
          Dst:             lwan_request_get_query_param
        - Src:             '/src/lwan/src/lib/lwan-request.c:2022,5'
          Dst:             lwan_request_get_post_param
        - Src:             '/src/lwan/src/lib/lwan-request.c:2025,5'
          Dst:             parse_range
        - Src:             '/src/lwan/src/lib/lwan-request.c:2028,5'
          Dst:             parse_if_modified_since
        - Src:             '/src/lwan/src/lib/lwan-request.c:2032,9'
          Dst:             prepare_websocket_handshake
        - Src:             '/src/lwan/src/lib/lwan-request.c:2037,5'
          Dst:             lwan_http_authorize
        - Src:             '/src/lwan/src/lib/lwan-request.c:2039,5'
          Dst:             coro_deferred_run
    - functionName:    lwan_key_value_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.h:428,1'
          Dst:             lwan_array_reset
    - functionName:    lwan_key_value_array_sort
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_sort
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.h:428,1'
          Dst:             lwan_array_sort
    - functionName:    lwan_key_value_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_heap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan.h:428,1'
          Dst:             lwan_array_append_heap
    - functionName:    reset_key_value_array
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_key_value_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:353,5'
          Dst:             lwan_key_value_array_reset
    - functionName:    lwan_key_value_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    identity_decode
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_key_values
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          211
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - coro_defer
        - coro_defer_fire_and_disarm
        - key_value_compare
        - lwan_key_value_array_append
        - lwan_key_value_array_init
        - lwan_key_value_array_sort
        - reset_key_value_array
        - strsep_char
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:370,5'
          Dst:             lwan_key_value_array_init
        - Src:             '/src/lwan/src/lib/lwan-request.c:371,19'
          Dst:             coro_defer
        - Src:             '/src/lwan/src/lib/lwan-request.c:371,19'
          Dst:             reset_key_value_array
        - Src:             '/src/lwan/src/lib/lwan-request.c:382,15'
          Dst:             strsep_char
        - Src:             '/src/lwan/src/lib/lwan-request.c:384,17'
          Dst:             strsep_char
        - Src:             '/src/lwan/src/lib/lwan-request.c:397,14'
          Dst:             lwan_key_value_array_append
        - Src:             '/src/lwan/src/lib/lwan-request.c:405,5'
          Dst:             lwan_key_value_array_sort
        - Src:             '/src/lwan/src/lib/lwan-request.c:405,5'
          Dst:             key_value_compare
        - Src:             '/src/lwan/src/lib/lwan-request.c:410,5'
          Dst:             coro_defer_fire_and_disarm
    - functionName:    strsep_char
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strchr
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:116,11'
          Dst:             strchr
    - functionName:    key_value_compare
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:344,12'
          Dst:             strcmp
    - functionName:    parse_off_without_sign
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          88
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - __isoc23_strtoull
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:696,5'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-request.c:698,11'
          Dst:             __isoc23_strtoull
        - Src:             '/src/lwan/src/lib/lwan-request.c:701,9'
          Dst:             __errno_location
    - functionName:    __isoc23_strtoull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_dir_good_for_tmp
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - lwan_log_error_debug
        - lwan_log_warning_debug
        - lwan_straitjacket_allow_dir_path_rw
        - stat64
        - statfs64
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1071,9'
          Dst:             stat64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1078,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-request.c:1086,10'
          Dst:             statfs64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1087,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-request.c:1093,10'
          Dst:             lwan_straitjacket_allow_dir_path_rw
        - Src:             '/src/lwan/src/lib/lwan-request.c:1094,9'
          Dst:             lwan_log_error_debug
    - functionName:    stat64
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    statfs64
      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:    initialize_lazy_global_get_temp_dir
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1131
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - is_dir_good_for_tmp
        - lwan_log_warning_debug
        - secure_getenv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             is_dir_good_for_tmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             is_dir_good_for_tmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             is_dir_good_for_tmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             is_dir_good_for_tmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             is_dir_good_for_tmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             lwan_log_warning_debug
    - functionName:    get_temp_dir
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1103
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - initialize_lazy_global_get_temp_dir
        - pthread_once
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             pthread_once
        - Src:             '/src/lwan/src/lib/lwan-request.c:1103,1'
          Dst:             initialize_lazy_global_get_temp_dir
    - functionName:    pthread_once
      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:    free_body_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1172
      functionLinenumberEnd: 1177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - munmap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1175,5'
          Dst:             munmap
    - functionName:    create_temp_file
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1134
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - get_temp_dir
        - mkostemp64
        - open64
        - snprintf
        - unlink
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1139,9'
          Dst:             get_temp_dir
        - Src:             '/src/lwan/src/lib/lwan-request.c:1143,19'
          Dst:             get_temp_dir
        - Src:             '/src/lwan/src/lib/lwan-request.c:1143,14'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1151,65'
          Dst:             get_temp_dir
        - Src:             '/src/lwan/src/lib/lwan-request.c:1151,11'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-request.c:1156,11'
          Dst:             mkostemp64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1160,9'
          Dst:             unlink
    - functionName:    mkostemp64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unlink
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    body_data_finalizer
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1040
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1049,9'
          Dst:             time
    - functionName:    time
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    alloc_body_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1181
      functionLinenumberEnd: 1226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          179
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - close
        - coro_malloc
        - coro_malloc_full
        - create_temp_file
        - free_body_buffer
        - ftruncate64
        - mmap64
        - munmap
        - set_vma_anon_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1187,15'
          Dst:             coro_malloc
        - Src:             '/src/lwan/src/lib/lwan-request.c:1196,10'
          Dst:             create_temp_file
        - Src:             '/src/lwan/src/lib/lwan-request.c:1200,9'
          Dst:             ftruncate64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1201,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-request.c:1206,15'
          Dst:             mmap64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1210,15'
          Dst:             mmap64
        - Src:             '/src/lwan/src/lib/lwan-request.c:1211,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-request.c:1215,5'
          Dst:             set_vma_anon_name
        - Src:             '/src/lwan/src/lib/lwan-request.c:1217,11'
          Dst:             coro_malloc_full
        - Src:             '/src/lwan/src/lib/lwan-request.c:1217,11'
          Dst:             free_body_buffer
        - Src:             '/src/lwan/src/lib/lwan-request.c:1219,9'
          Dst:             munmap
    - functionName:    ftruncate64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_remaining_body_data_length
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1269
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          175
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - parse_long_long
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1240,19'
          Dst:             parse_long_long
    - functionName:    read_body_data
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1272
      functionLinenumberEnd: 1330
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          256
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - alloc_body_buffer
        - body_data_finalizer
        - client_read
        - get_remaining_body_data_length
        - lwan_request_get_header
        - lwan_request_get_method
        - lwan_send
        - strncmp
        - time
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:1281,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1281,13'
          Dst:             lwan_request_get_method
        - Src:             '/src/lwan/src/lib/lwan-request.c:1295,9'
          Dst:             get_remaining_body_data_length
        - Src:             '/src/lwan/src/lib/lwan-request.c:1302,9'
          Dst:             alloc_body_buffer
        - Src:             '/src/lwan/src/lib/lwan-request.c:1308,30'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:1310,23'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:1313,13'
          Dst:             lwan_send
        - Src:             '/src/lwan/src/lib/lwan-request.c:1325,31'
          Dst:             time
        - Src:             '/src/lwan/src/lib/lwan-request.c:1329,17'
          Dst:             client_read
        - Src:             '/src/lwan/src/lib/lwan-request.c:1329,17'
          Dst:             body_data_finalizer
    - functionName:    lwan_request_get_method
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_get_header
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1710
      functionLinenumberEnd: 1737
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - strcaseequal_neutral_len
        - strchr
        - strlen
      functionUses:    8
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:1727,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1712,31'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-request.c:1716,5'
          Dst:             strchr
        - Src:             '/src/lwan/src/lib/lwan-request.c:1716,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-request.c:1729,17'
          Dst:             strcaseequal_neutral_len
    - functionName:    lwan_send
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          51
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_send_fd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:69,17'
          Dst:             lwan_send_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:71,9'
          Dst:             coro_yield
    - functionName:    client_read
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          253
      EdgeCount:       38
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - coro_yield
        - recv
        - save_to_corpus_for_fuzzing
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:925,17'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:946,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:922,21'
          Dst:             recv
        - Src:             '/src/lwan/src/lib/lwan-request.c:925,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-request.c:929,21'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-request.c:950,13'
          Dst:             save_to_corpus_for_fuzzing
        - Src:             '/src/lwan/src/lib/lwan-request.c:962,5'
          Dst:             coro_yield
    - functionName:    save_to_corpus_for_fuzzing
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - lwan_log_debug_debug
        - memmem
        - open64
        - rand
        - snprintf
        - unlink
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:852,22'
          Dst:             memmem
        - Src:             '/src/lwan/src/lib/lwan-request.c:859,69'
          Dst:             rand
        - Src:             '/src/lwan/src/lib/lwan-request.c:859,5'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-request.c:861,10'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-request.c:866,21'
          Dst:             write
        - Src:             '/src/lwan/src/lib/lwan-request.c:869,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-request.c:869,36'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-request.c:872,13'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-request.c:873,13'
          Dst:             unlink
        - Src:             '/src/lwan/src/lib/lwan-request.c:881,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-request.c:882,5'
          Dst:             lwan_log_debug_debug
    - functionName:    memmem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rand
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maybe_read_body_data
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1489
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - read_body_data
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1493,18'
          Dst:             read_body_data
    - functionName:    request_has_body
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1483
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_request_get_method
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1483,12'
          Dst:             lwan_request_get_method
    - functionName:    lwan_http_authorize_urlmap
      functionSourceFile: '/src/lwan/src/lib/lwan-http-authorize.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_http_authorize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-http-authorize.h:36,12'
          Dst:             lwan_http_authorize
    - functionName:    mempmove
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_header_value
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          60
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    find_query_string
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:465,26'
          Dst:             memchr
    - functionName:    parse_ascii_port
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          79
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - __isoc23_strtoul
        - htons
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:88,5'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-request.c:89,14'
          Dst:             __isoc23_strtoul
        - Src:             '/src/lwan/src/lib/lwan-request.c:91,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-request.c:100,12'
          Dst:             htons
    - functionName:    __isoc23_strtoul
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    htons
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_proxy_protocol_v2
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          240
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - ntohs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:202,51'
          Dst:             ntohs
    - functionName:    ntohs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_proxy_protocol_v1
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          289
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - inet_pton
        - memchr
        - parse_ascii_port
        - strsep_char
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:148,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:133,11'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/lwan-request.c:140,16'
          Dst:             strsep_char
        - Src:             '/src/lwan/src/lib/lwan-request.c:141,16'
          Dst:             strsep_char
        - Src:             '/src/lwan/src/lib/lwan-request.c:142,16'
          Dst:             strsep_char
        - Src:             '/src/lwan/src/lib/lwan-request.c:143,16'
          Dst:             strsep_char
        - Src:             '/src/lwan/src/lib/lwan-request.c:155,13'
          Dst:             inet_pton
        - Src:             '/src/lwan/src/lib/lwan-request.c:157,13'
          Dst:             inet_pton
        - Src:             '/src/lwan/src/lib/lwan-request.c:159,13'
          Dst:             parse_ascii_port
        - Src:             '/src/lwan/src/lib/lwan-request.c:161,13'
          Dst:             parse_ascii_port
        - Src:             '/src/lwan/src/lib/lwan-request.c:172,13'
          Dst:             inet_pton
        - Src:             '/src/lwan/src/lib/lwan-request.c:174,13'
          Dst:             inet_pton
        - Src:             '/src/lwan/src/lib/lwan-request.c:176,13'
          Dst:             parse_ascii_port
        - Src:             '/src/lwan/src/lib/lwan-request.c:178,13'
          Dst:             parse_ascii_port
    - functionName:    inet_pton
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    url_decode
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          179
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - mempmove
        - stpcpy
        - strlen
        - strpbrk
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:293,26'
          Dst:             strpbrk
        - Src:             '/src/lwan/src/lib/lwan-request.c:296,22'
          Dst:             mempmove
        - Src:             '/src/lwan/src/lib/lwan-request.c:293,55'
          Dst:             strpbrk
        - Src:             '/src/lwan/src/lib/lwan-request.c:333,18'
          Dst:             stpcpy
        - Src:             '/src/lwan/src/lib/lwan-request.c:337,21'
          Dst:             strlen
    - functionName:    strpbrk
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stpcpy
      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:    parse_headers
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         78
      ICount:          576
      EdgeCount:       95
      CyclomaticComplexity: 19
      functionsReached:
        - memchr
        - set_header_value
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:623,9'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:627,13'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:639,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:614,17'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/lwan-request.c:629,17'
          Dst:             set_header_value
        - Src:             '/src/lwan/src/lib/lwan-request.c:634,13'
          Dst:             set_header_value
        - Src:             '/src/lwan/src/lib/lwan-request.c:641,17'
          Dst:             set_header_value
        - Src:             '/src/lwan/src/lib/lwan-request.c:644,17'
          Dst:             set_header_value
        - Src:             '/src/lwan/src/lib/lwan-request.c:649,13'
          Dst:             set_header_value
        - Src:             '/src/lwan/src/lib/lwan-request.c:652,13'
          Dst:             set_header_value
        - Src:             '/src/lwan/src/lib/lwan-request.c:655,13'
          Dst:             set_header_value
    - functionName:    identify_http_path
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          170
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - find_query_string
        - memchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:506,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:490,19'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/lwan-request.c:501,5'
          Dst:             find_query_string
    - functionName:    parse_proxy_protocol
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - parse_proxy_protocol_v1
        - parse_proxy_protocol_v2
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:1335,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1337,16'
          Dst:             parse_proxy_protocol_v1
        - Src:             '/src/lwan/src/lib/lwan-request.c:1339,16'
          Dst:             parse_proxy_protocol_v2
    - functionName:    read_request_finalizer_from_helper
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 972
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          181
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - memmem
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:977,9'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:997,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:983,22'
          Dst:             memmem
    - functionName:    read_request_finalizer
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1021
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_request_finalizer_from_helper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1022,12'
          Dst:             read_request_finalizer_from_helper
    - functionName:    base64_encoded_len
      functionSourceFile: '/src/lwan/src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    lwan_request_foreach_header_for_cgi
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2052
      functionLinenumberEnd: 2093
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          203
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - lwan_char_isalpha
        - lwan_char_iscgiheader
        - memchr
        - snprintf
        - streq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:2060,29'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/lwan-request.c:2073,13'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-request.c:2079,17'
          Dst:             lwan_char_isalpha
        - Src:             '/src/lwan/src/lib/lwan-request.c:2081,23'
          Dst:             lwan_char_iscgiheader
        - Src:             '/src/lwan/src/lib/lwan-request.c:2085,13'
          Dst:             streq
    - functionName:    request_seems_complete
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1951
      functionLinenumberEnd: 1953
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_request_finalizer_from_helper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1952,12'
          Dst:             read_request_finalizer_from_helper
    - functionName:    useless_coro_for_fuzzing
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1946
      functionLinenumberEnd: 1947
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_accept_encoding
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - strchr
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:767,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:761,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-request.c:795,19'
          Dst:             strchr
    - functionName:    lwan_request_get_accept_encoding
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1934
      functionLinenumberEnd: 1940
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_accept_encoding
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1936,9'
          Dst:             parse_accept_encoding
    - functionName:    parse_form_data
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - parse_key_values
        - strncmp
        - url_decode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:449,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-request.c:453,9'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:457,5'
          Dst:             parse_key_values
        - Src:             '/src/lwan/src/lib/lwan-request.c:457,5'
          Dst:             url_decode
    - functionName:    parse_query_string
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - parse_key_values
        - url_decode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:438,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-request.c:440,5'
          Dst:             parse_key_values
        - Src:             '/src/lwan/src/lib/lwan-request.c:440,5'
          Dst:             url_decode
    - functionName:    parse_cookies
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - identity_decode
        - lwan_request_get_header
        - parse_key_values
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:421,27'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:423,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-request.c:429,40'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-request.c:430,5'
          Dst:             parse_key_values
        - Src:             '/src/lwan/src/lib/lwan-request.c:430,5'
          Dst:             identity_decode
    - functionName:    lwan_request_get_content_type
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1896
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_get_request_body
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1889
      functionLinenumberEnd: 1890
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_if_modified_since
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_parse_rfc_time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:681,9'
          Dst:             lwan_parse_rfc_time
    - functionName:    lwan_request_get_if_modified_since
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1871
      functionLinenumberEnd: 1885
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - parse_if_modified_since
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1875,9'
          Dst:             parse_if_modified_since
    - functionName:    parse_range
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          159
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - lwan_char_isdigit
        - parse_off_without_sign
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:717,9'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-request.c:728,14'
          Dst:             parse_off_without_sign
        - Src:             '/src/lwan/src/lib/lwan-request.c:732,16'
          Dst:             lwan_char_isdigit
        - Src:             '/src/lwan/src/lib/lwan-request.c:733,14'
          Dst:             parse_off_without_sign
        - Src:             '/src/lwan/src/lib/lwan-request.c:742,18'
          Dst:             parse_off_without_sign
    - functionName:    lwan_request_get_range
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1852
      functionLinenumberEnd: 1867
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - parse_range
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1856,9'
          Dst:             parse_range
    - functionName:    lwan_request_sleep
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1840
      functionLinenumberEnd: 1848
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_defer_fire_and_disarm
        - coro_yield
        - lwan_request_sleep_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1842,27'
          Dst:             lwan_request_sleep_internal
        - Src:             '/src/lwan/src/lib/lwan-request.c:1844,5'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-request.c:1847,9'
          Dst:             coro_defer_fire_and_disarm
    - functionName:    lwan_request_sleep_internal
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1813
      functionLinenumberEnd: 1836
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          96
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - clock_gettime
        - coro_defer2
        - lwan_log_critical_debug
        - remove_sleep
        - timeouts_add
        - timeouts_update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1823,9'
          Dst:             clock_gettime
        - Src:             '/src/lwan/src/lib/lwan-request.c:1824,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-request.c:1825,5'
          Dst:             timeouts_update
        - Src:             '/src/lwan/src/lib/lwan-request.c:1829,5'
          Dst:             timeouts_add
        - Src:             '/src/lwan/src/lib/lwan-request.c:1832,17'
          Dst:             coro_defer2
        - Src:             '/src/lwan/src/lib/lwan-request.c:1832,17'
          Dst:             remove_sleep
    - functionName:    remove_sleep
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1797
      functionLinenumberEnd: 1809
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - timeouts_del
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1806,9'
          Dst:             timeouts_del
    - functionName:    lwan_request_get_remote_address
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1791
      functionLinenumberEnd: 1793
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_request_get_remote_address_and_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1793,12'
          Dst:             lwan_request_get_remote_address_and_port
    - functionName:    lwan_request_get_remote_address_and_port
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1750
      functionLinenumberEnd: 1786
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          129
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - getpeername
        - inet_ntop
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1771,13'
          Dst:             getpeername
        - Src:             '/src/lwan/src/lib/lwan-request.c:1779,17'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-request.c:1780,16'
          Dst:             inet_ntop
        - Src:             '/src/lwan/src/lib/lwan-request.c:1784,13'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-request.c:1785,12'
          Dst:             inet_ntop
    - functionName:    getpeername
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_get_host
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1740
      functionLinenumberEnd: 1743
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_get_cookies
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1901
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_cookies
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1903,9'
          Dst:             parse_cookies
    - functionName:    lwan_request_get_cookie
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1704
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_cookies
        - value_lookup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1705,25'
          Dst:             parse_cookies
        - Src:             '/src/lwan/src/lib/lwan-request.c:1705,12'
          Dst:             value_lookup
    - functionName:    value_lookup
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1675
      functionLinenumberEnd: 1688
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          74
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - bsearch
        - key_value_compare
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1682,17'
          Dst:             bsearch
        - Src:             '/src/lwan/src/lib/lwan-request.c:1682,17'
          Dst:             key_value_compare
    - functionName:    bsearch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_get_post_params
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1929
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_form_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1925,9'
          Dst:             parse_form_data
    - functionName:    lwan_request_get_post_param
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1698
      functionLinenumberEnd: 1929
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_form_data
        - value_lookup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1699,25'
          Dst:             parse_form_data
        - Src:             '/src/lwan/src/lib/lwan-request.c:1699,12'
          Dst:             value_lookup
    - functionName:    lwan_request_get_query_params
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1912
      functionLinenumberEnd: 1918
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_query_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1914,9'
          Dst:             parse_query_string
    - functionName:    lwan_request_get_query_param
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1918
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_query_string
        - value_lookup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1693,25'
          Dst:             parse_query_string
        - Src:             '/src/lwan/src/lib/lwan-request.c:1693,12'
          Dst:             value_lookup
    - functionName:    log_request
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1569
      functionLinenumberEnd: 1580
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_log_debug_debug
        - lwan_request_get_id
        - lwan_request_get_method_str
        - lwan_request_get_remote_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1572,5'
          Dst:             lwan_request_get_remote_address
        - Src:             '/src/lwan/src/lib/lwan-request.c:1572,5'
          Dst:             lwan_request_get_id
        - Src:             '/src/lwan/src/lib/lwan-request.c:1572,5'
          Dst:             lwan_request_get_method_str
        - Src:             '/src/lwan/src/lib/lwan-request.c:1572,5'
          Dst:             lwan_log_debug_debug
    - functionName:    lwan_request_get_method_str
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1551
      functionLinenumberEnd: 1562
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - lwan_request_get_method
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:1556,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1556,13'
          Dst:             lwan_request_get_method
    - functionName:    handle_rewrite
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1534
      functionLinenumberEnd: 1548
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - find_query_string
        - lwan_default_response
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1539,5'
          Dst:             find_query_string
        - Src:             '/src/lwan/src/lib/lwan-request.c:1543,9'
          Dst:             lwan_default_response
    - functionName:    prepare_for_response
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1514
      functionLinenumberEnd: 1531
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - lwan_http_authorize_urlmap
        - maybe_read_body_data
        - request_has_body
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1523,14'
          Dst:             lwan_http_authorize_urlmap
        - Src:             '/src/lwan/src/lib/lwan-request.c:1527,9'
          Dst:             request_has_body
        - Src:             '/src/lwan/src/lib/lwan-request.c:1528,16'
          Dst:             maybe_read_body_data
    - functionName:    parse_http_request
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1346
      functionLinenumberEnd: 1381
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          446
      EdgeCount:       79
      CyclomaticComplexity: 20
      functionsReached:
        - identify_http_path
        - parse_headers
        - parse_proxy_protocol
        - strchr
        - url_decode
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-request.c:811,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1353,18'
          Dst:             parse_proxy_protocol
        - Src:             '/src/lwan/src/lib/lwan-request.c:1366,14'
          Dst:             identify_http_path
        - Src:             '/src/lwan/src/lib/lwan-request.c:1370,9'
          Dst:             parse_headers
        - Src:             '/src/lwan/src/lib/lwan-request.c:1373,27'
          Dst:             url_decode
        - Src:             '/src/lwan/src/lib/lwan-request.c:1378,5'
          Dst:             strchr
    - functionName:    elapsed_time_ms
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1599
      functionLinenumberEnd: 1611
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - current_precise_monotonic_timespec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1600,33'
          Dst:             current_precise_monotonic_timespec
    - functionName:    current_precise_monotonic_timespec
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1587
      functionLinenumberEnd: 1596
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clock_gettime
        - lwan_log_perror_debug
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1590,9'
          Dst:             clock_gettime
        - Src:             '/src/lwan/src/lib/lwan-request.c:1591,9'
          Dst:             lwan_log_perror_debug
    - functionName:    lwan_process_request
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1616
      functionLinenumberEnd: 1671
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          191
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - client_read
        - current_precise_monotonic_timespec
        - elapsed_time_ms
        - handle_rewrite
        - log_request
        - lwan_default_response
        - lwan_response
        - lwan_trie_lookup_prefix
        - parse_http_request
        - prepare_for_response
        - read_request_finalizer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1621,47'
          Dst:             current_precise_monotonic_timespec
        - Src:             '/src/lwan/src/lib/lwan-request.c:1623,14'
          Dst:             client_read
        - Src:             '/src/lwan/src/lib/lwan-request.c:1623,14'
          Dst:             read_request_finalizer
        - Src:             '/src/lwan/src/lib/lwan-request.c:1626,35'
          Dst:             elapsed_time_ms
        - Src:             '/src/lwan/src/lib/lwan-request.c:1628,42'
          Dst:             current_precise_monotonic_timespec
        - Src:             '/src/lwan/src/lib/lwan-request.c:1638,9'
          Dst:             lwan_default_response
        - Src:             '/src/lwan/src/lib/lwan-request.c:1643,14'
          Dst:             parse_http_request
        - Src:             '/src/lwan/src/lib/lwan-request.c:1648,15'
          Dst:             lwan_trie_lookup_prefix
        - Src:             '/src/lwan/src/lib/lwan-request.c:1654,14'
          Dst:             prepare_for_response
        - Src:             '/src/lwan/src/lib/lwan-request.c:1661,17'
          Dst:             handle_rewrite
        - Src:             '/src/lwan/src/lib/lwan-request.c:1668,5'
          Dst:             lwan_response
        - Src:             '/src/lwan/src/lib/lwan-request.c:1670,56'
          Dst:             elapsed_time_ms
        - Src:             '/src/lwan/src/lib/lwan-request.c:1670,5'
          Dst:             log_request
    - functionName:    prepare_websocket_handshake
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1447
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          197
      EdgeCount:       39
      CyclomaticComplexity: 13
      functionsReached:
        - base64_encode
        - base64_encoded_len
        - base64_validate
        - lwan_request_get_header
        - sha1_finalize
        - sha1_init
        - sha1_update
        - streq
        - strlen
        - strstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1397,27'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:1407,34'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:1416,13'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan-request.c:1416,45'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan-request.c:1423,14'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan-request.c:1425,16'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-request.c:1430,9'
          Dst:             lwan_request_get_header
        - Src:             '/src/lwan/src/lib/lwan-request.c:1434,42'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-request.c:1435,9'
          Dst:             base64_encoded_len
        - Src:             '/src/lwan/src/lib/lwan-request.c:1437,9'
          Dst:             base64_validate
        - Src:             '/src/lwan/src/lib/lwan-request.c:1440,5'
          Dst:             sha1_init
        - Src:             '/src/lwan/src/lib/lwan-request.c:1441,5'
          Dst:             sha1_update
        - Src:             '/src/lwan/src/lib/lwan-request.c:1442,5'
          Dst:             sha1_update
        - Src:             '/src/lwan/src/lib/lwan-request.c:1443,5'
          Dst:             sha1_finalize
        - Src:             '/src/lwan/src/lib/lwan-request.c:1445,24'
          Dst:             base64_encode
    - functionName:    lwan_request_websocket_upgrade
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1451
      functionLinenumberEnd: 1477
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          90
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_prepare_response_header_full
        - lwan_send
        - prepare_websocket_handshake
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:1456,31'
          Dst:             prepare_websocket_handshake
        - Src:             '/src/lwan/src/lib/lwan-request.c:1461,22'
          Dst:             lwan_prepare_response_header_full
        - Src:             '/src/lwan/src/lib/lwan-request.c:1474,5'
          Dst:             lwan_send
    - functionName:    lwan_find_headers
      functionSourceFile: '/src/lwan/src/lib/lwan-request.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          192
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - memchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-request.c:669,12'
          Dst:             memchr
    - functionName:    lwan_response_send_event
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          166
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - coro_yield
        - lwan_response_set_event_stream
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_reset
        - lwan_writev
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:467,13'
          Dst:             lwan_response_set_event_stream
        - Src:             '/src/lwan/src/lib/lwan-response.c:478,24'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-response.c:486,25'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-response.c:493,25'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-response.c:503,5'
          Dst:             lwan_writev
        - Src:             '/src/lwan/src/lib/lwan-response.c:505,5'
          Dst:             lwan_strbuf_reset
        - Src:             '/src/lwan/src/lib/lwan-response.c:506,5'
          Dst:             coro_yield
    - functionName:    lwan_response_set_event_stream
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          89
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_prepare_response_header_full
        - lwan_send
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:450,18'
          Dst:             lwan_prepare_response_header_full
        - Src:             '/src/lwan/src/lib/lwan-response.c:456,5'
          Dst:             lwan_send
    - functionName:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_writev
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_writev_fd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:56,17'
          Dst:             lwan_writev_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:58,9'
          Dst:             coro_yield
    - functionName:    lwan_prepare_response_header_full
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         195
      ICount:          1117
      EdgeCount:       244
      CyclomaticComplexity: 51
      functionsReached:
        - __assert_fail
        - lwan_http_status_as_string_with_code
        - lwan_request_get_id
        - lwan_strbuf_get_length
        - strcaseequal_neutral
        - streq
        - strlen
        - uint_to_string
      functionUses:    6
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-response.c:250,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:232,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-response.c:240,5'
          Dst:             lwan_http_status_as_string_with_code
        - Src:             '/src/lwan/src/lib/lwan-response.c:240,5'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-response.c:240,5'
          Dst:             lwan_http_status_as_string_with_code
        - Src:             '/src/lwan/src/lib/lwan-response.c:252,21'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-response.c:260,21'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-response.c:268,13'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-response.c:271,13'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-response.c:280,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-response.c:282,17'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-response.c:306,13'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-response.c:318,9'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-response.c:318,9'
          Dst:             uint_to_string
        - Src:             '/src/lwan/src/lib/lwan-response.c:335,27'
          Dst:             lwan_request_get_id
    - functionName:    lwan_send
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          51
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_send_fd
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:69,17'
          Dst:             lwan_send_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:71,9'
          Dst:             coro_yield
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    lwan_response_send_chunk_full
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          132
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - coro_yield
        - lwan_response_set_chunked
        - lwan_send
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_reset
        - lwan_writev
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:402,13'
          Dst:             lwan_response_set_chunked
        - Src:             '/src/lwan/src/lib/lwan-response.c:406,25'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-response.c:409,9'
          Dst:             lwan_send
        - Src:             '/src/lwan/src/lib/lwan-response.c:415,9'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-response.c:418,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-response.c:425,22'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-response.c:429,5'
          Dst:             lwan_writev
        - Src:             '/src/lwan/src/lib/lwan-response.c:431,5'
          Dst:             lwan_strbuf_reset
    - functionName:    lwan_response_set_chunked
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_response_set_chunked_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:394,12'
          Dst:             lwan_response_set_chunked_full
    - functionName:    lwan_response_set_chunked_full
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_prepare_response_header_full
        - lwan_send
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:379,18'
          Dst:             lwan_prepare_response_header_full
        - Src:             '/src/lwan/src/lib/lwan-response.c:386,5'
          Dst:             lwan_send
    - functionName:    lwan_fill_default_response
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_http_status_as_descriptive_string
        - lwan_http_status_as_string
        - lwan_tpl_apply_with_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:152,30'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-response.c:153,29'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-response.c:149,5'
          Dst:             lwan_tpl_apply_with_buffer
    - functionName:    lwan_request_get_method
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    has_response_body
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_prepare_response_header
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_prepare_response_header_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:364,12'
          Dst:             lwan_prepare_response_header_full
    - functionName:    lwan_default_response
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_fill_default_response
        - lwan_response
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:162,5'
          Dst:             lwan_fill_default_response
        - Src:             '/src/lwan/src/lib/lwan-response.c:163,5'
          Dst:             lwan_response
    - functionName:    lwan_response
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          239
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - has_response_body
        - lwan_default_response
        - lwan_log_debug_debug
        - lwan_prepare_response_header_full
        - lwan_request_get_method
        - lwan_response_send_chunk
        - lwan_send
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_reset
        - lwan_writev
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:89,9'
          Dst:             lwan_strbuf_reset
        - Src:             '/src/lwan/src/lib/lwan-response.c:90,9'
          Dst:             lwan_response_send_chunk
        - Src:             '/src/lwan/src/lib/lwan-response.c:95,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-response.c:102,16'
          Dst:             lwan_default_response
        - Src:             '/src/lwan/src/lib/lwan-response.c:114,13'
          Dst:             lwan_default_response
        - Src:             '/src/lwan/src/lib/lwan-response.c:121,9'
          Dst:             lwan_prepare_response_header_full
        - Src:             '/src/lwan/src/lib/lwan-response.c:123,16'
          Dst:             lwan_default_response
        - Src:             '/src/lwan/src/lib/lwan-response.c:125,28'
          Dst:             lwan_request_get_method
        - Src:             '/src/lwan/src/lib/lwan-response.c:125,10'
          Dst:             has_response_body
        - Src:             '/src/lwan/src/lib/lwan-response.c:126,22'
          Dst:             lwan_send
        - Src:             '/src/lwan/src/lib/lwan-response.c:128,22'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-response.c:129,29'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-response.c:135,22'
          Dst:             lwan_send
        - Src:             '/src/lwan/src/lib/lwan-response.c:143,18'
          Dst:             lwan_writev
    - functionName:    lwan_response_send_chunk
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_response_send_chunk_full
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:436,12'
          Dst:             lwan_response_send_chunk_full
    - functionName:    lwan_response_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - lwan_log_debug_debug
        - lwan_tpl_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:70,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-response.c:71,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-response.c:72,5'
          Dst:             lwan_tpl_free
    - functionName:    lwan_response_init
      functionSourceFile: '/src/lwan/src/lib/lwan-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - lwan_log_critical_perror_debug
        - lwan_log_debug_debug
        - lwan_tpl_compile_file
        - lwan_tpl_compile_value_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-response.c:52,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-response.c:54,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-response.c:58,13'
          Dst:             lwan_tpl_compile_file
        - Src:             '/src/lwan/src/lib/lwan-response.c:60,26'
          Dst:             lwan_tpl_compile_value_full
        - Src:             '/src/lwan/src/lib/lwan-response.c:65,9'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    lwan_constructor_bin2hex_00007ffd633330b8
      functionSourceFile: '/work/lwan/response-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initialize_lazy_global_get_backlog_size
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __isoc23_fscanf
        - fclose
        - fopen64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:61,1'
          Dst:             fopen64
        - Src:             '/src/lwan/src/lib/lwan-socket.c:61,1'
          Dst:             __isoc23_fscanf
        - Src:             '/src/lwan/src/lib/lwan-socket.c:61,1'
          Dst:             fclose
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __isoc23_fscanf
      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:    2
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_backlog_size
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - initialize_lazy_global_get_backlog_size
        - pthread_once
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:61,1'
          Dst:             pthread_once
        - Src:             '/src/lwan/src/lib/lwan-socket.c:61,1'
          Dst:             initialize_lazy_global_get_backlog_size
    - functionName:    listen_addrinfo
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - gai_strerror
        - get_backlog_size
        - getnameinfo
        - listen
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - lwan_log_info_debug
        - set_socket_flags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:173,20'
          Dst:             get_backlog_size
        - Src:             '/src/lwan/src/lib/lwan-socket.c:173,9'
          Dst:             listen
        - Src:             '/src/lwan/src/lib/lwan-socket.c:174,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:179,19'
          Dst:             getnameinfo
        - Src:             '/src/lwan/src/lib/lwan-socket.c:183,13'
          Dst:             gai_strerror
        - Src:             '/src/lwan/src/lib/lwan-socket.c:183,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:186,13'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:189,13'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:193,12'
          Dst:             set_socket_flags
    - functionName:    listen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getnameinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gai_strerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_socket_flags
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - fcntl64
        - lwan_log_critical_perror_debug
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:92,17'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/lwan-socket.c:94,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:95,9'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/lwan-socket.c:96,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:98,13'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/lwan-socket.c:100,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:101,9'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/lwan-socket.c:102,9'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    bind_and_listen_addrinfos
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - bind
        - close
        - listen_addrinfo
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - setsockopt
        - socket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:218,18'
          Dst:             socket
        - Src:             '/src/lwan/src/lib/lwan-socket.c:222,9'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:222,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:224,9'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:224,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:229,14'
          Dst:             bind
        - Src:             '/src/lwan/src/lib/lwan-socket.c:230,20'
          Dst:             listen_addrinfo
        - Src:             '/src/lwan/src/lib/lwan-socket.c:232,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-socket.c:235,5'
          Dst:             lwan_log_critical_debug
    - functionName:    socket
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initialize_lazy_global_is_reno_supported
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fclose
        - fgets
        - fopen64
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:42,1'
          Dst:             fopen64
        - Src:             '/src/lwan/src/lib/lwan-socket.c:42,1'
          Dst:             fgets
        - Src:             '/src/lwan/src/lib/lwan-socket.c:42,1'
          Dst:             strstr
        - Src:             '/src/lwan/src/lib/lwan-socket.c:42,1'
          Dst:             fclose
    - functionName:    fgets
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_reno_supported
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - initialize_lazy_global_is_reno_supported
        - pthread_once
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:42,1'
          Dst:             pthread_once
        - Src:             '/src/lwan/src/lib/lwan-socket.c:42,1'
          Dst:             initialize_lazy_global_is_reno_supported
    - functionName:    set_socket_options
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          156
      EdgeCount:       41
      CyclomaticComplexity: 8
      functionsReached:
        - is_reno_supported
        - lwan_log_critical_perror_debug
        - lwan_log_perror_debug
        - setsockopt
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:240,5'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:240,5'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:249,5'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:249,5'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:250,5'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:250,5'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:251,5'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:251,5'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:252,5'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:252,5'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:253,5'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-socket.c:253,5'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:256,9'
          Dst:             is_reno_supported
        - Src:             '/src/lwan/src/lib/lwan-socket.c:257,9'
          Dst:             setsockopt
    - functionName:    setup_socket_normally
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          110
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - bind_and_listen_addrinfos
        - freeaddrinfo
        - gai_strerror
        - getaddrinfo
        - lwan_log_critical_debug
        - lwan_socket_parse_address
        - set_socket_options
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:271,22'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-socket.c:272,26'
          Dst:             lwan_socket_parse_address
        - Src:             '/src/lwan/src/lib/lwan-socket.c:275,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:284,15'
          Dst:             getaddrinfo
        - Src:             '/src/lwan/src/lib/lwan-socket.c:286,9'
          Dst:             gai_strerror
        - Src:             '/src/lwan/src/lib/lwan-socket.c:286,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:288,14'
          Dst:             bind_and_listen_addrinfos
        - Src:             '/src/lwan/src/lib/lwan-socket.c:289,5'
          Dst:             freeaddrinfo
        - Src:             '/src/lwan/src/lib/lwan-socket.c:290,12'
          Dst:             set_socket_options
    - functionName:    lwan_socket_parse_address
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_listener_ipv4
        - parse_listener_ipv6
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:163,16'
          Dst:             parse_listener_ipv6
        - Src:             '/src/lwan/src/lib/lwan-socket.c:165,12'
          Dst:             parse_listener_ipv4
    - functionName:    getaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freeaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_listener_ipv6
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:141,24'
          Dst:             strrchr
        - Src:             '/src/lwan/src/lib/lwan-socket.c:152,18'
          Dst:             strlen
    - functionName:    parse_listener_ipv4
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strchr
        - streq
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:109,19'
          Dst:             strrchr
        - Src:             '/src/lwan/src/lib/lwan-socket.c:112,14'
          Dst:             strchr
        - Src:             '/src/lwan/src/lib/lwan-socket.c:128,13'
          Dst:             streq
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    from_systemd_socket
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_log_critical_debug
        - sd_is_socket_inet
        - set_socket_flags
        - set_socket_options
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:295,9'
          Dst:             sd_is_socket_inet
        - Src:             '/src/lwan/src/lib/lwan-socket.c:296,9'
          Dst:             sd_is_socket_inet
        - Src:             '/src/lwan/src/lib/lwan-socket.c:297,38'
          Dst:             set_socket_flags
        - Src:             '/src/lwan/src/lib/lwan-socket.c:297,16'
          Dst:             set_socket_options
        - Src:             '/src/lwan/src/lib/lwan-socket.c:300,5'
          Dst:             lwan_log_critical_debug
    - functionName:    strv_free
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_create_listen_socket
      functionSourceFile: '/src/lwan/src/lib/lwan-socket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          201
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - from_systemd_socket
        - lwan_log_critical_debug
        - lwan_log_perror_debug
        - sd_listen_fds
        - sd_listen_fds_with_names
        - setup_socket_normally
        - strcmp
        - streq
        - strncmp
        - strv_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-socket.c:311,10'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-socket.c:313,17'
          Dst:             sd_listen_fds_with_names
        - Src:             '/src/lwan/src/lib/lwan-socket.c:319,13'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-socket.c:320,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:326,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:332,18'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-socket.c:338,9'
          Dst:             strv_free
        - Src:             '/src/lwan/src/lib/lwan-socket.c:341,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:345,16'
          Dst:             from_systemd_socket
        - Src:             '/src/lwan/src/lib/lwan-socket.c:348,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-socket.c:349,17'
          Dst:             sd_listen_fds
        - Src:             '/src/lwan/src/lib/lwan-socket.c:352,13'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-socket.c:353,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:358,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:363,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-socket.c:369,16'
          Dst:             from_systemd_socket
        - Src:             '/src/lwan/src/lib/lwan-socket.c:372,12'
          Dst:             setup_socket_normally
    - functionName:    log_index
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          19
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strerror_thunk_r
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strerror_r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:145,12'
          Dst:             strerror_r
    - functionName:    strerror_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gettid_cached
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gettid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:155,54'
          Dst:             gettid
    - functionName:    gettid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_thread_emoji
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    end_color
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    start_color
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_index
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:132,25'
          Dst:             log_index
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    lwan_log_critical_perror_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - log_out
      functionUses:    39
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:338,1'
          Dst:             log_out
        - Src:             '/src/lwan/src/lib/lwan-log.c:338,1'
          Dst:             abort
    - functionName:    log_out
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          156
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - __xpg_basename
        - end_color
        - flockfile
        - funlockfile
        - fwrite_unlocked
        - get_thread_emoji
        - gettid_cached
        - printf
        - start_color
        - strerror_thunk_r
        - strlen
        - vprintf
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:254,31'
          Dst:             start_color
        - Src:             '/src/lwan/src/lib/lwan-log.c:255,29'
          Dst:             end_color
        - Src:             '/src/lwan/src/lib/lwan-log.c:256,23'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-log.c:265,5'
          Dst:             flockfile
        - Src:             '/src/lwan/src/lib/lwan-log.c:268,32'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-log.c:268,23'
          Dst:             __xpg_basename
        - Src:             '/src/lwan/src/lib/lwan-log.c:271,27'
          Dst:             get_thread_emoji
        - Src:             '/src/lwan/src/lib/lwan-log.c:271,13'
          Dst:             printf
        - Src:             '/src/lwan/src/lib/lwan-log.c:273,55'
          Dst:             gettid_cached
        - Src:             '/src/lwan/src/lib/lwan-log.c:273,13'
          Dst:             printf
        - Src:             '/src/lwan/src/lib/lwan-log.c:274,9'
          Dst:             printf
        - Src:             '/src/lwan/src/lib/lwan-log.c:275,9'
          Dst:             printf
        - Src:             '/src/lwan/src/lib/lwan-log.c:277,35'
          Dst:             gettid_cached
        - Src:             '/src/lwan/src/lib/lwan-log.c:277,9'
          Dst:             printf
        - Src:             '/src/lwan/src/lib/lwan-log.c:281,5'
          Dst:             fwrite_unlocked
        - Src:             '/src/lwan/src/lib/lwan-log.c:282,5'
          Dst:             vprintf
        - Src:             '/src/lwan/src/lib/lwan-log.c:287,13'
          Dst:             strerror_thunk_r
        - Src:             '/src/lwan/src/lib/lwan-log.c:289,9'
          Dst:             printf
        - Src:             '/src/lwan/src/lib/lwan-log.c:292,5'
          Dst:             fwrite_unlocked
        - Src:             '/src/lwan/src/lib/lwan-log.c:294,5'
          Dst:             funlockfile
        - Src:             '/src/lwan/src/lib/lwan-log.c:296,5'
          Dst:             __errno_location
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    flockfile
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __xpg_basename
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fwrite_unlocked
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vprintf
      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:    funlockfile
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_log_critical_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - log_out
      functionUses:    42
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:337,1'
          Dst:             log_out
        - Src:             '/src/lwan/src/lib/lwan-log.c:337,1'
          Dst:             abort
    - functionName:    lwan_log_perror_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - log_out
      functionUses:    39
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:335,1'
          Dst:             log_out
    - functionName:    lwan_log_error_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - log_out
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:334,1'
          Dst:             log_out
    - functionName:    lwan_log_warning_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - log_out
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:333,1'
          Dst:             log_out
    - functionName:    lwan_log_info_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - log_out
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:332,1'
          Dst:             log_out
    - functionName:    lwan_log_debug_debug
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - log_out
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:329,1'
          Dst:             log_out
    - functionName:    lwan_log_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 64
      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:    can_use_emojis
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - can_use_colors
        - secure_getenv
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:100,10'
          Dst:             can_use_colors
        - Src:             '/src/lwan/src/lib/lwan-log.c:103,24'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-log.c:107,10'
          Dst:             strstr
    - functionName:    can_use_colors
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         23
      ICount:          110
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - fileno
        - isatty
        - secure_getenv
        - streq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:72,17'
          Dst:             fileno
        - Src:             '/src/lwan/src/lib/lwan-log.c:72,10'
          Dst:             isatty
        - Src:             '/src/lwan/src/lib/lwan-log.c:79,16'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-log.c:83,17'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-log.c:85,13'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-log.c:87,13'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-log.c:91,12'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-log.c:92,17'
          Dst:             streq
    - functionName:    fileno
      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:    isatty
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_log_init
      functionSourceFile: '/src/lwan/src/lib/lwan-log.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - can_use_colors
        - can_use_emojis
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-log.c:60,18'
          Dst:             can_use_colors
        - Src:             '/src/lwan/src/lib/lwan-log.c:61,18'
          Dst:             can_use_emojis
    - functionName:    abort_on_open_directories
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         28
      ICount:          159
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - closedir
        - dirfd
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - opendir
        - readdir64
        - readlinkat
        - snprintf
        - stat64
        - streq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:419,16'
          Dst:             opendir
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:425,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:429,50'
          Dst:             dirfd
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:429,11'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:431,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:434,19'
          Dst:             readdir64
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:439,13'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:441,13'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:441,40'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:444,26'
          Dst:             dirfd
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:444,15'
          Dst:             readlinkat
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:446,13'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:459,13'
          Dst:             stat64
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:460,13'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:465,13'
          Dst:             closedir
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:467,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:474,5'
          Dst:             closedir
    - functionName:    opendir
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dirfd
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readdir64
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    readlinkat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    closedir
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_user_uid_gid
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          96
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - getpwnam_r
        - lwan_log_error_debug
        - lwan_log_perror_debug
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:44,24'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:56,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:60,9'
          Dst:             getpwnam_r
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:69,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:71,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:72,9'
          Dst:             lwan_log_perror_debug
    - functionName:    getpwnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_enforce_from_config
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          189
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - config_error
        - config_read_line
        - lwan_landlock_available
        - lwan_straitjacket_enforce
        - parse_bool
        - streq
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-straitjacket.c:556,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:555,17'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:559,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:561,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:564,29'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:565,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:567,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:570,21'
          Dst:             lwan_landlock_available
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:571,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:574,31'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:575,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:576,37'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:578,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:583,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:586,13'
          Dst:             lwan_straitjacket_enforce
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:596,5'
          Dst:             config_error
    - functionName:    lwan_landlock_available
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_enforce
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - capset
        - enforce_chroot
        - lookup_user
        - lwan_landlock_available
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - switch_to_user
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:523,21'
          Dst:             lookup_user
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:525,10'
          Dst:             lwan_landlock_available
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:526,9'
          Dst:             enforce_chroot
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:530,14'
          Dst:             switch_to_user
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:531,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:543,13'
          Dst:             capset
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:544,13'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    lookup_user
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - get_user_uid_gid
        - lwan_log_critical_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:490,14'
          Dst:             get_user_uid_gid
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:491,13'
          Dst:             lwan_log_critical_debug
    - functionName:    enforce_chroot
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - abort_on_open_directories
        - chdir
        - chroot
        - geteuid
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - lwan_log_info_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:503,9'
          Dst:             geteuid
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:504,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:506,5'
          Dst:             abort_on_open_directories
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:508,9'
          Dst:             chroot
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:509,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:513,9'
          Dst:             chdir
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:514,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:516,5'
          Dst:             lwan_log_info_debug
    - functionName:    switch_to_user
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          145
      EdgeCount:       39
      CyclomaticComplexity: 13
      functionsReached:
        - getresgid
        - getresuid
        - initgroups
        - lwan_log_info_debug
        - setresgid
        - setresuid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:83,5'
          Dst:             lwan_log_info_debug
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:86,9'
          Dst:             setresgid
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:92,9'
          Dst:             initgroups
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:95,9'
          Dst:             setresuid
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:98,9'
          Dst:             getresuid
        - Src:             '/src/lwan/src/lib/lwan-straitjacket.c:103,9'
          Dst:             getresgid
    - functionName:    capset
      functionSourceFile: '/src/lwan/src/lib/missing/linux/capability.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/linux/capability.h:35,17'
          Dst:             syscall
    - functionName:    setresgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initgroups
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setresuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getresuid
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getresgid
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geteuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    chroot
      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:    chdir
      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:    lwan_straitjacket_allow_dir_path_rw
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_allow_dir_path_ro
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_allow_dirfd_rw
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_allow_dirfd_ro
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_allow_connect
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_straitjacket_allow_bind
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_landlock_enforce
      functionSourceFile: '/src/lwan/src/lib/lwan-straitjacket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    align_size
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_set_value
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:463,12'
          Dst:             lwan_strbuf_set
    - functionName:    lwan_strbuf_set
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - grow_buffer_if_needed
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:276,9'
          Dst:             grow_buffer_if_needed
    - functionName:    grow_buffer_if_needed
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          264
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - align_size
        - realloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:117,9'
          Dst:             align_size
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:117,9'
          Dst:             align_size
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:117,9'
          Dst:             realloc
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_append_value
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_append_str
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:458,12'
          Dst:             lwan_strbuf_append_str
    - functionName:    lwan_strbuf_append_str
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - grow_buffer_if_needed
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:252,9'
          Dst:             grow_buffer_if_needed
    - functionName:    lwan_strbuf_to_iovec
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:451,39'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:452,38'
          Dst:             lwan_strbuf_get_length
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_to_value
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:445,41'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:446,39'
          Dst:             lwan_strbuf_get_length
    - functionName:    lwan_strbuf_new_from_file
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_strbuf_init_from_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:434,9'
          Dst:             lwan_strbuf_init_from_file
    - functionName:    lwan_strbuf_init_from_file
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          133
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - fstat64
        - lwan_strbuf_free
        - lwan_strbuf_init_with_size
        - open64
        - read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:389,14'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:395,9'
          Dst:             fstat64
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:398,9'
          Dst:             lwan_strbuf_init_with_size
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:404,26'
          Dst:             read
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:407,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:417,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:421,5'
          Dst:             lwan_strbuf_free
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:423,5'
          Dst:             close
    - functionName:    lwan_strbuf_init_with_size
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - grow_buffer_if_needed
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:133,13'
          Dst:             grow_buffer_if_needed
    - functionName:    lwan_strbuf_free
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:226,9'
          Dst:             __assert_fail
    - functionName:    lwan_strbuf_extend_unsafe
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_strbuf_grow_by
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:378,10'
          Dst:             lwan_strbuf_grow_by
    - functionName:    lwan_strbuf_grow_by
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_strbuf_grow_to
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:350,12'
          Dst:             lwan_strbuf_grow_to
    - functionName:    lwan_strbuf_grow_to
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - grow_buffer_if_needed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:340,12'
          Dst:             grow_buffer_if_needed
    - functionName:    lwan_strbuf_reset_trim
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_strbuf_reset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:372,12'
          Dst:             lwan_strbuf_reset
    - functionName:    lwan_strbuf_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_append_printf
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_append_vprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:332,20'
          Dst:             lwan_strbuf_append_vprintf
    - functionName:    lwan_strbuf_append_vprintf
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:323,12'
          Dst:             vasprintf
    - functionName:    lwan_strbuf_printf
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_vprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:315,20'
          Dst:             lwan_strbuf_vprintf
    - functionName:    lwan_strbuf_vprintf
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:306,12'
          Dst:             vasprintf
    - functionName:    lwan_strbuf_set_static
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_append_char
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - grow_buffer_if_needed
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:238,9'
          Dst:             grow_buffer_if_needed
    - functionName:    lwan_strbuf_new_static
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_new
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_new_with_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:200,12'
          Dst:             lwan_strbuf_new_with_size
    - functionName:    lwan_strbuf_new_with_size
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_strbuf_init_with_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:168,9'
          Dst:             lwan_strbuf_init_with_size
    - functionName:    lwan_strbuf_new_with_fixed_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_strbuf_init_with_fixed_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:188,9'
          Dst:             lwan_strbuf_init_with_fixed_buffer
    - functionName:    lwan_strbuf_init_with_fixed_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          45
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_init
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_init_with_size
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.c:161,12'
          Dst:             lwan_strbuf_init_with_size
    - functionName:    lwan_strbuf_has_grow_buffer_failed_flag
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    self_test_status_codes
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         602
      ICount:          3893
      EdgeCount:       652
      CyclomaticComplexity: 52
      functionsReached:
        - __assert_fail
        - lwan_http_status_as_descriptive_string
        - lwan_http_status_as_string
        - strcmp
        - strncmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             lwan_http_status_as_descriptive_string
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             strcmp
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:147,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:150,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:151,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:152,5'
          Dst:             __assert_fail
    - functionName:    self_test_compare_with_ctype
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         22
      ICount:          220
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - __ctype_b_loc
        - memchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:336,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-tables.c:336,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:337,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-tables.c:337,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:338,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-tables.c:338,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:339,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-tables.c:339,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:340,9'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/lwan-tables.c:340,9'
          Dst:             __assert_fail
    - functionName:    lwan_http_status_as_string
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          91
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
    - functionName:    lwan_http_status_as_descriptive_string
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          94
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - strlen
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:207,23'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:207,23'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:207,23'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:208,18'
          Dst:             strlen
    - functionName:    lwan_char_isalnum
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_char_isalpha
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_char_isdigit
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_char_isxdigit
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_char_iscgiheader
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_char_isspace
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __bswap_64
      functionSourceFile: '/usr/include/x86_64-linux-gnu/bits/byteswap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_http_status_is_valid
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          58
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_http_status_as_string_with_code
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          87
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:191,12'
          Dst:             __assert_fail
    - functionName:    lwan_determine_mime_type_for_file_name
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __bswap_64
        - strncpy
        - strrchr
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:171,28'
          Dst:             strrchr
        - Src:             '/src/lwan/src/lib/lwan-tables.c:180,5'
          Dst:             strncpy
        - Src:             '/src/lwan/src/lib/lwan-tables.c:183,30'
          Dst:             __bswap_64
    - functionName:    strncpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    lwan_tables_init
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         43
      ICount:          186
      EdgeCount:       45
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - lwan_determine_mime_type_for_file_name
        - lwan_log_critical_debug
        - lwan_log_debug_debug
        - streq
        - strlen
        - uncompress
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tables.c:57,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-tables.c:93,9'
          Dst:             uncompress
        - Src:             '/src/lwan/src/lib/lwan-tables.c:96,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-tables.c:102,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-tables.c:109,16'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-tables.c:115,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:115,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:115,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:117,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:117,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:117,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:119,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:119,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:119,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:121,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:121,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:121,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:123,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:123,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:123,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:125,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:125,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:125,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:126,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:126,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:126,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:128,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:128,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:128,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:130,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:130,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:130,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tables.c:132,5'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-tables.c:132,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-tables.c:132,5'
          Dst:             __assert_fail
    - functionName:    uncompress
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_tables_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-tables.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    chunk_array_get_array
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      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:    bake_direct_addresses
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1487
      functionLinenumberEnd: 1498
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - bake_direct_addresses
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1492,13'
          Dst:             bake_direct_addresses
    - functionName:    chunk_array_len
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    chunk_array_get_elem
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:113,1'
          Dst:             __assert_fail
    - functionName:    post_process_template
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1099
      functionLinenumberEnd: 1202
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          427
      EdgeCount:       87
      CyclomaticComplexity: 20
      functionsReached:
        - __assert_fail
        - chunk_array_get_elem
        - chunk_array_get_elem_index
        - chunk_array_len
        - lwan_log_critical_perror_debug
        - lwan_log_error_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1101,47'
          Dst:             chunk_array_len
        - Src:             '/src/lwan/src/lib/lwan-template.c:1101,9'
          Dst:             chunk_array_get_elem
        - Src:             '/src/lwan/src/lib/lwan-template.c:1111,21'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1120,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:1124,17'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1139,21'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1146,25'
          Dst:             chunk_array_get_elem_index
        - Src:             '/src/lwan/src/lib/lwan-template.c:1151,29'
          Dst:             chunk_array_get_elem
        - Src:             '/src/lwan/src/lib/lwan-template.c:1157,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:1161,17'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1184,17'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1187,17'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1200,5'
          Dst:             lwan_log_error_debug
    - functionName:    chunk_array_get_elem_index
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:113,1'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:113,1'
          Dst:             __assert_fail
    - functionName:    lwan_append_str_to_strbuf
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_strbuf_append_strz
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:945,9'
          Dst:             lwan_strbuf_append_strz
    - functionName:    lwan_strbuf_append_strz
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_append_str
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:65,43'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:65,12'
          Dst:             lwan_strbuf_append_str
    - functionName:    list_node_from_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_to_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lexeme_ring_buffer_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lexeme_ring_buffer_get_ptr_or_null
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lexeme_ring_buffer_empty
        - lexeme_ring_buffer_mask
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:134,1'
          Dst:             lexeme_ring_buffer_empty
        - Src:             '/src/lwan/src/lib/lwan-template.c:134,1'
          Dst:             lexeme_ring_buffer_mask
    - functionName:    lexeme_ring_buffer_mask
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lex_next_fsm_loop
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lexeme_ring_buffer_get_ptr_or_null
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:516,23'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
        - Src:             '/src/lwan/src/lib/lwan-template.c:522,12'
          Dst:             lexeme_ring_buffer_get_ptr_or_null
    - functionName:    lex_identifier
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - backup
        - emit
        - is_ident
        - next
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:364,21'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:364,12'
          Dst:             is_ident
        - Src:             '/src/lwan/src/lib/lwan-template.c:366,5'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-template.c:367,5'
          Dst:             emit
    - functionName:    next
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_ident
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - __ctype_b_loc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:359,12'
          Dst:             __ctype_b_loc
    - functionName:    backup
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emit
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - emit_lexeme
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:281,5'
          Dst:             emit_lexeme
    - functionName:    lex_inside_action
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - __ctype_b_loc
        - backup
        - emit
        - ignore
        - is_ident
        - lex_error
        - lex_streq
        - next
      functionUses:    4
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-template.c:435,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:431,13'
          Dst:             lex_streq
        - Src:             '/src/lwan/src/lib/lwan-template.c:434,13'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:437,20'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:439,20'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:441,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:444,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:447,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:450,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:455,13'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:458,17'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-template.c:459,17'
          Dst:             ignore
        - Src:             '/src/lwan/src/lib/lwan-template.c:462,17'
          Dst:             is_ident
        - Src:             '/src/lwan/src/lib/lwan-template.c:463,17'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-template.c:467,20'
          Dst:             lex_error
    - functionName:    lex_streq
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - remaining
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:300,9'
          Dst:             remaining
        - Src:             '/src/lwan/src/lib/lwan-template.c:303,13'
          Dst:             strncmp
    - functionName:    lex_right_meta
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - emit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:489,5'
          Dst:             emit
    - functionName:    lex_error
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - emit_lexeme
        - error_vlexeme
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:350,5'
          Dst:             error_vlexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:353,5'
          Dst:             emit_lexeme
    - functionName:    lex_partial
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - backup
        - ignore
        - is_ident
        - lex_error
        - next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:374,17'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:377,20'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:379,20'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:380,13'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/lwan-template.c:381,13'
          Dst:             ignore
        - Src:             '/src/lwan/src/lib/lwan-template.c:384,13'
          Dst:             is_ident
        - Src:             '/src/lwan/src/lib/lwan-template.c:385,13'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-template.c:388,16'
          Dst:             lex_error
    - functionName:    lex_quoted_identifier
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - emit
        - lex_error
        - lex_identifier
        - next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:396,5'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:397,5'
          Dst:             lex_identifier
        - Src:             '/src/lwan/src/lib/lwan-template.c:399,9'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:401,16'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:403,5'
          Dst:             emit
    - functionName:    ignore
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    error_vlexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - lwan_log_error_debug
        - strdup
        - strerror
        - strlen
        - vasprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:318,9'
          Dst:             vasprintf
        - Src:             '/src/lwan/src/lib/lwan-template.c:320,47'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-template.c:320,38'
          Dst:             strerror
        - Src:             '/src/lwan/src/lib/lwan-template.c:320,31'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-template.c:324,25'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-template.c:329,5'
          Dst:             lwan_log_error_debug
    - functionName:    emit_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lexeme_ring_buffer_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:268,5'
          Dst:             lexeme_ring_buffer_put
    - functionName:    lexeme_ring_buffer_put
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - lexeme_ring_buffer_full
        - lexeme_ring_buffer_mask
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:134,1'
          Dst:             lexeme_ring_buffer_full
        - Src:             '/src/lwan/src/lib/lwan-template.c:134,1'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:134,1'
          Dst:             lexeme_ring_buffer_mask
    - functionName:    lexeme_ring_buffer_full
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lexeme_ring_buffer_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:134,1'
          Dst:             lexeme_ring_buffer_size
    - functionName:    lexeme_ring_buffer_size
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lex_text
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          80
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - emit
        - lex_error
        - lex_streq
        - next
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:496,13'
          Dst:             lex_streq
        - Src:             '/src/lwan/src/lib/lwan-template.c:498,17'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:502,13'
          Dst:             lex_streq
        - Src:             '/src/lwan/src/lib/lwan-template.c:503,20'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:504,14'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:506,9'
          Dst:             emit
        - Src:             '/src/lwan/src/lib/lwan-template.c:507,5'
          Dst:             emit
    - functionName:    lex_left_meta
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - backup
        - emit
        - next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:477,13'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:480,5'
          Dst:             backup
        - Src:             '/src/lwan/src/lib/lwan-template.c:482,5'
          Dst:             emit
    - functionName:    lex_comment
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          75
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - ignore
        - lex_error
        - next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:412,17'
          Dst:             next
        - Src:             '/src/lwan/src/lib/lwan-template.c:418,20'
          Dst:             lex_error
        - Src:             '/src/lwan/src/lib/lwan-template.c:422,5'
          Dst:             ignore
    - functionName:    remaining
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lexeme_ring_buffer_init
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_head_init
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lex_init
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lexeme_ring_buffer_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:540,5'
          Dst:             lexeme_ring_buffer_init
    - functionName:    chunk_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    chunk_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_heap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:113,1'
          Dst:             lwan_array_append_heap
    - functionName:    list_del
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check_node
        - list_poison_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:360,8'
          Dst:             list_check_node
        - Src:             '/src/lwan/src/lib/list.h:365,2'
          Dst:             list_poison_node
    - functionName:    list_empty
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:340,8'
          Dst:             list_check
    - functionName:    symtab_pop
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - hash_unref
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:259,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:261,5'
          Dst:             hash_unref
    - functionName:    parser_stack_top_matches
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 607
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          146
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - error_lexeme
        - list_del
        - list_empty
        - memcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:583,9'
          Dst:             list_empty
        - Src:             '/src/lwan/src/lib/lwan-template.c:584,9'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:593,22'
          Dst:             memcmp
        - Src:             '/src/lwan/src/lib/lwan-template.c:596,9'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-template.c:601,5'
          Dst:             error_lexeme
    - functionName:    error_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - error_vlexeme
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:338,5'
          Dst:             error_vlexeme
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parser_end_var_not_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          149
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - emit_chunk
        - error_lexeme
        - parser_stack_top_matches
        - symtab_lookup_lexeme
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:654,10'
          Dst:             parser_stack_top_matches
        - Src:             '/src/lwan/src/lib/lwan-template.c:657,14'
          Dst:             symtab_lookup_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:659,16'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:664,16'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:672,13'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:677,12'
          Dst:             error_lexeme
    - functionName:    symtab_lookup_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_log_error_debug
        - strnlen
        - symtab_lookup
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:208,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:213,26'
          Dst:             strnlen
        - Src:             '/src/lwan/src/lib/lwan-template.c:212,12'
          Dst:             symtab_lookup
    - functionName:    emit_chunk
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          47
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - chunk_array_append
        - lwan_log_critical_perror_debug
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:570,13'
          Dst:             chunk_array_append
        - Src:             '/src/lwan/src/lib/lwan-template.c:572,9'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    parser_right_meta
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unexpected_lexeme
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:613,16'
          Dst:             unexpected_lexeme
    - functionName:    unexpected_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - error_lexeme
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:548,12'
          Dst:             error_lexeme
    - functionName:    parser_text
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          160
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - emit_chunk
        - error_lexeme
        - lwan_strbuf_from_lexeme
        - strncpy
        - unexpected_lexeme
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:875,39'
          Dst:             lwan_strbuf_from_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:877,24'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:879,13'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:892,17'
          Dst:             strncpy
        - Src:             '/src/lwan/src/lib/lwan-template.c:895,17'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:906,9'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:910,12'
          Dst:             unexpected_lexeme
    - functionName:    parser_meta
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          82
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - parser_identifier
        - unexpected_lexeme
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-template.c:827,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:829,16'
          Dst:             unexpected_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:833,20'
          Dst:             unexpected_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:839,16'
          Dst:             parser_identifier
    - functionName:    lwan_strbuf_from_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_strbuf_new_static
        - lwan_strbuf_new_with_size
        - lwan_strbuf_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:859,16'
          Dst:             lwan_strbuf_new_static
        - Src:             '/src/lwan/src/lib/lwan-template.c:861,31'
          Dst:             lwan_strbuf_new_with_size
        - Src:             '/src/lwan/src/lib/lwan-template.c:863,9'
          Dst:             lwan_strbuf_set
    - functionName:    parser_identifier
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          243
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - emit_chunk
        - error_lexeme
        - lex_next
        - parser_push_lexeme
        - symtab_lookup_lexeme
        - unexpected_lexeme
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:752,18'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-template.c:757,20'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:758,22'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-template.c:759,20'
          Dst:             unexpected_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:764,13'
          Dst:             symtab_lookup_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:766,20'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:771,13'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:772,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:773,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-template.c:775,13'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:786,13'
          Dst:             symtab_lookup_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:788,20'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:797,9'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:798,9'
          Dst:             parser_push_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:805,12'
          Dst:             unexpected_lexeme
    - functionName:    parser_partial
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          88
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - emit_chunk
        - error_lexeme
        - lwan_tpl_compile_file
        - strnlen
        - unexpected_lexeme
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:811,22'
          Dst:             strnlen
        - Src:             '/src/lwan/src/lib/lwan-template.c:814,16'
          Dst:             unexpected_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:816,11'
          Dst:             lwan_tpl_compile_file
        - Src:             '/src/lwan/src/lib/lwan-template.c:818,9'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:822,12'
          Dst:             error_lexeme
    - functionName:    parser_iter
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          116
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - emit_chunk
        - error_lexeme
        - parser_push_lexeme
        - symtab_lookup_lexeme
        - symtab_push
        - unexpected_lexeme
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:705,13'
          Dst:             symtab_lookup_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:707,20'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:711,17'
          Dst:             symtab_push
        - Src:             '/src/lwan/src/lib/lwan-template.c:714,24'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:718,20'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:722,9'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:724,9'
          Dst:             parser_push_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:729,12'
          Dst:             unexpected_lexeme
    - functionName:    parser_negate
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - parser_identifier
        - unexpected_lexeme
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-template.c:734,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:736,16'
          Dst:             unexpected_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:744,16'
          Dst:             parser_identifier
    - functionName:    parser_slash
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - lex_next
        - parser_end_iter
        - parser_end_var_not_empty
        - unexpected_lexeme
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:686,21'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-template.c:688,24'
          Dst:             parser_end_iter
        - Src:             '/src/lwan/src/lib/lwan-template.c:691,24'
          Dst:             parser_end_var_not_empty
        - Src:             '/src/lwan/src/lib/lwan-template.c:693,20'
          Dst:             unexpected_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:697,12'
          Dst:             unexpected_lexeme
    - functionName:    lex_next
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lex_next_fsm_loop
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:527,29'
          Dst:             lex_next_fsm_loop
    - functionName:    parser_end_iter
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          143
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - chunk_array_get_elem_index
        - emit_chunk
        - error_lexeme
        - parser_stack_top_matches
        - symtab_lookup_lexeme
        - symtab_pop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:622,10'
          Dst:             parser_stack_top_matches
        - Src:             '/src/lwan/src/lib/lwan-template.c:625,14'
          Dst:             symtab_lookup_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:627,16'
          Dst:             error_lexeme
        - Src:             '/src/lwan/src/lib/lwan-template.c:635,28'
          Dst:             chunk_array_get_elem_index
        - Src:             '/src/lwan/src/lib/lwan-template.c:637,13'
          Dst:             emit_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:638,13'
          Dst:             symtab_pop
        - Src:             '/src/lwan/src/lib/lwan-template.c:644,12'
          Dst:             error_lexeme
    - functionName:    symtab_push
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          112
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - hash_add
        - hash_str_new
        - hash_unref
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:227,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-template.c:229,17'
          Dst:             hash_str_new
        - Src:             '/src/lwan/src/lib/lwan-template.c:239,13'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/lwan-template.c:248,5'
          Dst:             hash_unref
    - functionName:    parser_push_lexeme
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          38
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - list_add
        - lwan_log_critical_perror_debug
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:557,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:560,5'
          Dst:             list_add
    - functionName:    list_add
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:307,8'
          Dst:             list_check
    - functionName:    lwan_tpl_compile_file
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1454
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - fstat64
        - lwan_log_perror_debug
        - lwan_tpl_compile_string
        - mmap64
        - munmap
        - open64
        - set_vma_anon_name
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1460,10'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-template.c:1464,9'
          Dst:             fstat64
        - Src:             '/src/lwan/src/lib/lwan-template.c:1467,14'
          Dst:             mmap64
        - Src:             '/src/lwan/src/lib/lwan-template.c:1471,5'
          Dst:             set_vma_anon_name
        - Src:             '/src/lwan/src/lib/lwan-template.c:1473,11'
          Dst:             lwan_tpl_compile_string
        - Src:             '/src/lwan/src/lib/lwan-template.c:1475,9'
          Dst:             munmap
        - Src:             '/src/lwan/src/lib/lwan-template.c:1476,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1479,5'
          Dst:             close
    - functionName:    lwan_tpl_compile_string
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1447
      functionLinenumberEnd: 1448
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_tpl_compile_string_full
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1448,12'
          Dst:             lwan_tpl_compile_string_full
    - functionName:    lwan_tpl_compile_string_full
      functionSourceFile: '/src/lwan/src/lib/lwan-template.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_tpl_compile_value_full
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.h:106,64'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-template.h:107,12'
          Dst:             lwan_tpl_compile_value_full
    - functionName:    lwan_tpl_compile_value_full
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1425
      functionLinenumberEnd: 1442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - lwan_tpl_free
        - parse_value
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1428,11'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-template.c:1430,13'
          Dst:             parse_value
        - Src:             '/src/lwan/src/lib/lwan-template.c:1438,9'
          Dst:             lwan_tpl_free
    - functionName:    parse_value
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1305
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lex_next
        - parser_init
        - parser_shutdown
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1294,10'
          Dst:             parser_init
        - Src:             '/src/lwan/src/lib/lwan-template.c:1298,24'
          Dst:             lex_next
        - Src:             '/src/lwan/src/lib/lwan-template.c:1304,12'
          Dst:             parser_shutdown
    - functionName:    lwan_tpl_free
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1096
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - free_chunk_array
        - unbake_direct_addresses
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1092,9'
          Dst:             unbake_direct_addresses
        - Src:             '/src/lwan/src/lib/lwan-template.c:1093,9'
          Dst:             free_chunk_array
    - functionName:    unbake_direct_addresses
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1047
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          108
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - unbake_direct_addresses
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1042,17'
          Dst:             unbake_direct_addresses
    - functionName:    free_chunk_array
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1081
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - chunk_array_reset
        - free_chunk
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1085,9'
          Dst:             free_chunk
        - Src:             '/src/lwan/src/lib/lwan-template.c:1086,5'
          Dst:             chunk_array_reset
    - functionName:    free_chunk
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_strbuf_free
        - lwan_tpl_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-template.c:1056,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1072,9'
          Dst:             lwan_strbuf_free
        - Src:             '/src/lwan/src/lib/lwan-template.c:1075,9'
          Dst:             lwan_tpl_free
    - functionName:    chunk_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:113,1'
          Dst:             lwan_array_reset
    - functionName:    parser_init
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - chunk_array_init
        - lex_init
        - list_head_init
        - symtab_push
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1208,9'
          Dst:             symtab_push
        - Src:             '/src/lwan/src/lib/lwan-template.c:1211,5'
          Dst:             chunk_array_init
        - Src:             '/src/lwan/src/lib/lwan-template.c:1214,5'
          Dst:             lex_init
        - Src:             '/src/lwan/src/lib/lwan-template.c:1215,5'
          Dst:             list_head_init
    - functionName:    parser_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1277
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          238
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - free_chunk_array
        - list_check
        - list_del
        - list_empty
        - list_node_from_off_
        - list_node_to_off_
        - lwan_log_error_debug
        - post_process_template
        - symtab_pop
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1225,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1232,10'
          Dst:             list_empty
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-template.c:1236,13'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1239,13'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/lwan-template.c:1235,9'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/lwan-template.c:1247,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1251,9'
          Dst:             symtab_pop
        - Src:             '/src/lwan/src/lib/lwan-template.c:1253,13'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1257,17'
          Dst:             symtab_pop
        - Src:             '/src/lwan/src/lib/lwan-template.c:1264,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1268,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1272,26'
          Dst:             post_process_template
        - Src:             '/src/lwan/src/lib/lwan-template.c:1275,9'
          Dst:             free_chunk_array
    - functionName:    symtab_lookup
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hash_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:196,43'
          Dst:             hash_find
    - functionName:    lwan_tpl_apply
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1730
      functionLinenumberEnd: 1741
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_strbuf_free
        - lwan_strbuf_new_with_size
        - lwan_tpl_apply_with_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1731,31'
          Dst:             lwan_strbuf_new_with_size
        - Src:             '/src/lwan/src/lib/lwan-template.c:1736,9'
          Dst:             lwan_tpl_apply_with_buffer
        - Src:             '/src/lwan/src/lib/lwan-template.c:1739,5'
          Dst:             lwan_strbuf_free
    - functionName:    lwan_tpl_apply_with_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1717
      functionLinenumberEnd: 1727
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - apply
        - lwan_strbuf_grow_to
        - lwan_strbuf_reset
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1718,5'
          Dst:             lwan_strbuf_reset
        - Src:             '/src/lwan/src/lib/lwan-template.c:1720,9'
          Dst:             lwan_strbuf_grow_to
        - Src:             '/src/lwan/src/lib/lwan-template.c:1723,10'
          Dst:             apply
    - functionName:    apply
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1506
      functionLinenumberEnd: 1712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         136
      ICount:          743
      EdgeCount:       155
      CyclomaticComplexity: 21
      functionsReached:
        - apply
        - bake_direct_addresses
        - chunk_array_get_array
        - coro_free
        - coro_new
        - coro_resume_value
        - lwan_append_str_escaped_to_strbuf
        - lwan_append_str_to_strbuf
        - lwan_log_error_debug
        - lwan_log_warning_debug
        - lwan_strbuf_append_str
        - lwan_strbuf_free
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_grow_by
        - lwan_strbuf_has_grow_buffer_failed_flag
        - lwan_strbuf_init_with_fixed_buffer
        - strnlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1530,9'
          Dst:             bake_direct_addresses
        - Src:             '/src/lwan/src/lib/lwan-template.c:1563,33'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-template.c:1564,28'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-template.c:1563,5'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-template.c:1569,22'
          Dst:             strnlen
        - Src:             '/src/lwan/src/lib/lwan-template.c:1571,9'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-template.c:1589,5'
          Dst:             lwan_append_str_to_strbuf
        - Src:             '/src/lwan/src/lib/lwan-template.c:1593,5'
          Dst:             lwan_append_str_escaped_to_strbuf
        - Src:             '/src/lwan/src/lib/lwan-template.c:1605,13'
          Dst:             lwan_strbuf_init_with_fixed_buffer
        - Src:             '/src/lwan/src/lib/lwan-template.c:1608,21'
          Dst:             lwan_strbuf_has_grow_buffer_failed_flag
        - Src:             '/src/lwan/src/lib/lwan-template.c:1610,13'
          Dst:             lwan_strbuf_free
        - Src:             '/src/lwan/src/lib/lwan-template.c:1622,21'
          Dst:             apply
        - Src:             '/src/lwan/src/lib/lwan-template.c:1623,13'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1635,13'
          Dst:             lwan_strbuf_grow_by
        - Src:             '/src/lwan/src/lib/lwan-template.c:1636,35'
          Dst:             chunk_array_get_array
        - Src:             '/src/lwan/src/lib/lwan-template.c:1636,18'
          Dst:             apply
        - Src:             '/src/lwan/src/lib/lwan-template.c:1638,17'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1642,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1652,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1657,12'
          Dst:             coro_new
        - Src:             '/src/lwan/src/lib/lwan-template.c:1659,20'
          Dst:             coro_resume_value
        - Src:             '/src/lwan/src/lib/lwan-template.c:1667,13'
          Dst:             coro_resume_value
        - Src:             '/src/lwan/src/lib/lwan-template.c:1669,9'
          Dst:             coro_free
        - Src:             '/src/lwan/src/lib/lwan-template.c:1678,13'
          Dst:             apply
        - Src:             '/src/lwan/src/lib/lwan-template.c:1679,5'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1687,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-template.c:1693,10'
          Dst:             coro_resume_value
        - Src:             '/src/lwan/src/lib/lwan-template.c:1694,9'
          Dst:             coro_free
        - Src:             '/src/lwan/src/lib/lwan-template.c:1699,13'
          Dst:             apply
        - Src:             '/src/lwan/src/lib/lwan-template.c:1701,5'
          Dst:             lwan_log_error_debug
    - functionName:    lwan_append_str_escaped_to_strbuf
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1016
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          305
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - lwan_strbuf_append_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:1007,13'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-template.c:1010,13'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-template.c:1015,9'
          Dst:             lwan_strbuf_append_str
    - functionName:    lwan_tpl_str_is_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1025
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_tpl_double_is_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 934
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          36
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_append_double_to_strbuf
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 926
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_append_printf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:927,5'
          Dst:             lwan_strbuf_append_printf
    - functionName:    lwan_tpl_int_is_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_append_int_to_strbuf
      functionSourceFile: '/src/lwan/src/lib/lwan-template.c'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - int_to_string
        - lwan_strbuf_append_str
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-template.c:919,17'
          Dst:             int_to_string
        - Src:             '/src/lwan/src/lib/lwan-template.c:920,5'
          Dst:             lwan_strbuf_append_str
    - functionName:    graceful_close
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          169
      EdgeCount:       42
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - coro_yield
        - ioctl
        - recv
        - shutdown
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-thread.c:91,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:68,17'
          Dst:             ioctl
        - Src:             '/src/lwan/src/lib/lwan-thread.c:72,22'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:78,9'
          Dst:             shutdown
        - Src:             '/src/lwan/src/lib/lwan-thread.c:79,13'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:85,21'
          Dst:             recv
        - Src:             '/src/lwan/src/lib/lwan-thread.c:91,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:101,9'
          Dst:             coro_yield
    - functionName:    ioctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shutdown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_free_defer
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:55,12'
          Dst:             lwan_strbuf_free
    - functionName:    process_request_coro
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          307
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - coro_defer
        - coro_deferred_run
        - coro_malloc_full
        - coro_yield
        - graceful_close
        - lwan_process_request
        - lwan_strbuf_free_defer
        - lwan_strbuf_reset_trim
        - send_last_response_without_coro
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:467,5'
          Dst:             coro_defer
        - Src:             '/src/lwan/src/lib/lwan-thread.c:467,5'
          Dst:             lwan_strbuf_free_defer
        - Src:             '/src/lwan/src/lib/lwan-thread.c:477,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:482,22'
          Dst:             coro_malloc_full
        - Src:             '/src/lwan/src/lib/lwan-thread.c:494,13'
          Dst:             send_last_response_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:496,13'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:525,9'
          Dst:             lwan_process_request
        - Src:             '/src/lwan/src/lib/lwan-thread.c:530,9'
          Dst:             coro_deferred_run
        - Src:             '/src/lwan/src/lib/lwan-thread.c:533,13'
          Dst:             graceful_close
        - Src:             '/src/lwan/src/lib/lwan-thread.c:541,17'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:544,13'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:549,9'
          Dst:             lwan_strbuf_reset_trim
        - Src:             '/src/lwan/src/lib/lwan-thread.c:556,5'
          Dst:             coro_yield
    - functionName:    send_last_response_without_coro
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - close
        - lwan_fill_default_response
        - lwan_http_status_as_string_with_code
        - lwan_strbuf_free
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_init
        - send_buffer_without_coro
        - send_string_without_coro
        - shutdown
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:417,10'
          Dst:             send_string_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:421,17'
          Dst:             lwan_http_status_as_string_with_code
        - Src:             '/src/lwan/src/lib/lwan-thread.c:420,10'
          Dst:             send_string_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:424,10'
          Dst:             send_string_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:427,10'
          Dst:             send_string_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:430,9'
          Dst:             send_buffer_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:434,9'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan-thread.c:435,9'
          Dst:             lwan_fill_default_response
        - Src:             '/src/lwan/src/lib/lwan-thread.c:437,38'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-thread.c:438,34'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-thread.c:437,9'
          Dst:             send_buffer_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:440,9'
          Dst:             lwan_strbuf_free
        - Src:             '/src/lwan/src/lib/lwan-thread.c:444,5'
          Dst:             shutdown
        - Src:             '/src/lwan/src/lib/lwan-thread.c:445,5'
          Dst:             close
    - functionName:    send_string_without_coro
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - send_buffer_without_coro
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:397,46'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-thread.c:397,12'
          Dst:             send_buffer_without_coro
    - functionName:    send_buffer_without_coro
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - send
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:379,24'
          Dst:             send
        - Src:             '/src/lwan/src/lib/lwan-thread.c:381,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:383,17'
          Dst:             __errno_location
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      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:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_epoll_flags
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          135
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - epoll_ctl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:613,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:614,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:619,43'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:622,12'
          Dst:             epoll_ctl
    - functionName:    epoll_ctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_pending_timers
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1053
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - timeout_queue_empty
        - timeout_queue_expire
        - timeout_queue_expire_waiting
        - timeouts_add
        - timeouts_del
        - timeouts_get
        - update_date_cache
        - update_epoll_flags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1022,23'
          Dst:             timeouts_get
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1030,17'
          Dst:             update_epoll_flags
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1033,13'
          Dst:             timeout_queue_expire
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1038,9'
          Dst:             timeout_queue_expire_waiting
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1042,9'
          Dst:             update_date_cache
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1044,14'
          Dst:             timeout_queue_empty
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1045,13'
          Dst:             timeouts_add
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1049,9'
          Dst:             timeouts_del
    - functionName:    update_date_cache
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 973
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_format_rfc_time
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:968,18'
          Dst:             time
        - Src:             '/src/lwan/src/lib/lwan-thread.c:970,5'
          Dst:             lwan_format_rfc_time
        - Src:             '/src/lwan/src/lib/lwan-thread.c:971,5'
          Dst:             lwan_format_rfc_time
    - functionName:    spawn_coro
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          193
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - coro_new
        - lwan_log_error_debug
        - process_request_coro
        - send_last_response_without_coro
        - timeout_queue_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:986,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:987,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:988,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:989,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:990,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:991,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:995,17'
          Dst:             coro_new
        - Src:             '/src/lwan/src/lib/lwan-thread.c:995,17'
          Dst:             process_request_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1001,9'
          Dst:             timeout_queue_insert
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1009,5'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1011,5'
          Dst:             send_last_response_without_coro
    - functionName:    accept_waiting_clients
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          179
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - __errno_location
        - accept4
        - epoll_ctl
        - lwan_log_info_debug
        - lwan_log_perror_debug
        - send_last_response_without_coro
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-thread.c:1129,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1090,34'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1103,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1108,18'
          Dst:             accept4
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1117,17'
          Dst:             epoll_ctl
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1119,17'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1122,17'
          Dst:             send_last_response_without_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1129,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1131,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1140,13'
          Dst:             lwan_log_info_debug
    - functionName:    accept4
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    resume_coro
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 949
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - coro_resume_value
        - timeout_queue_expire
        - timeout_queue_move_to_last
        - update_epoll_flags
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:950,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:951,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:953,25'
          Dst:             coro_resume_value
        - Src:             '/src/lwan/src/lib/lwan-thread.c:956,9'
          Dst:             timeout_queue_expire
        - Src:             '/src/lwan/src/lib/lwan-thread.c:961,13'
          Dst:             update_epoll_flags
        - Src:             '/src/lwan/src/lib/lwan-thread.c:963,9'
          Dst:             timeout_queue_move_to_last
    - functionName:    turn_timer_wheel
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1057
      functionLinenumberEnd: 1083
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          97
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - clock_gettime
        - lwan_log_critical_debug
        - process_pending_timers
        - timeouts_timeout
        - timeouts_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1062,9'
          Dst:             clock_gettime
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1063,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1065,5'
          Dst:             timeouts_update
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1069,21'
          Dst:             timeouts_timeout
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1078,10'
          Dst:             process_pending_timers
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1082,17'
          Dst:             timeouts_timeout
    - functionName:    thread_io_loop
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1339
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         65
      ICount:          437
      EdgeCount:       79
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - __errno_location
        - accept_waiting_clients
        - calloc
        - close
        - epoll_wait
        - lwan_log_critical_debug
        - lwan_log_debug_debug
        - lwan_random_seed_prng_for_thread
        - lwan_set_thread_name
        - pthread_barrier_wait
        - resume_coro
        - spawn_coro
        - timeout_queue_expire
        - timeout_queue_expire_all
        - timeout_queue_init
        - timeouts_add
        - turn_timer_wheel
        - update_date_cache
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1237,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1240,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1244,5'
          Dst:             lwan_set_thread_name
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1246,14'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1248,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1250,5'
          Dst:             update_date_cache
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1252,5'
          Dst:             timeout_queue_init
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1254,5'
          Dst:             lwan_random_seed_prng_for_thread
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1256,5'
          Dst:             pthread_barrier_wait
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1259,23'
          Dst:             turn_timer_wheel
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1260,21'
          Dst:             epoll_wait
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1264,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1264,35'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1277,21'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1278,21'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1282,21'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1292,21'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1293,21'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1294,21'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1299,21'
          Dst:             resume_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1304,17'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1306,21'
          Dst:             accept_waiting_clients
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1309,17'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1317,17'
          Dst:             timeout_queue_expire
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1322,21'
          Dst:             spawn_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1327,13'
          Dst:             resume_coro
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1331,13'
          Dst:             timeouts_add
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1334,5'
          Dst:             pthread_barrier_wait
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1336,5'
          Dst:             timeout_queue_expire_all
    - functionName:    lwan_random_seed_prng_for_thread
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    epoll_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    siblings_to_schedtbl
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1468
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          192
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - lwan_log_critical_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1443,21'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1447,9'
          Dst:             lwan_log_critical_debug
    - functionName:    read_cpu_topology
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1374
      functionLinenumberEnd: 1438
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          198
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - __isoc23_fscanf
        - fclose
        - fopen64
        - lwan_log_critical_debug
        - lwan_log_warning_debug
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-thread.c:1396,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1385,9'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1389,15'
          Dst:             fopen64
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1391,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1396,17'
          Dst:             __isoc23_fscanf
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1402,17'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1409,13'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1413,9'
          Dst:             fclose
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1424,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1429,13'
          Dst:             lwan_log_warning_debug
    - functionName:    unasync_await_conn
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:631,5'
          Dst:             __assert_fail
    - functionName:    prepare_await
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          211
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - __errno_location
        - coro_defer2
        - epoll_ctl
        - unasync_await_conn
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:662,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:663,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:683,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:696,9'
          Dst:             coro_defer2
        - Src:             '/src/lwan/src/lib/lwan-thread.c:696,9'
          Dst:             unasync_await_conn
        - Src:             '/src/lwan/src/lib/lwan-thread.c:699,43'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:701,9'
          Dst:             epoll_ctl
        - Src:             '/src/lwan/src/lib/lwan-thread.c:707,13'
          Dst:             __errno_location
    - functionName:    lwan_thread_shutdown
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1747
      functionLinenumberEnd: 1783
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          120
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - lwan_log_debug_debug
        - pthread_barrier_destroy
        - pthread_barrier_wait
        - pthread_join
        - timeouts_close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1748,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1757,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1758,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1761,5'
          Dst:             pthread_barrier_wait
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1762,5'
          Dst:             pthread_barrier_destroy
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1767,9'
          Dst:             pthread_join
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1768,9'
          Dst:             timeouts_close
    - functionName:    pthread_barrier_destroy
      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:    adjust_thread_affinity
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1493
      functionLinenumberEnd: 1501
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_log_warning_debug
        - pthread_setaffinity_np
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1499,9'
          Dst:             pthread_setaffinity_np
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1500,9'
          Dst:             lwan_log_warning_debug
    - functionName:    pthread_setaffinity_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    create_listen_socket
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          186
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - epoll_ctl
        - lwan_create_listen_socket
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - setsockopt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1155,17'
          Dst:             lwan_create_listen_socket
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1157,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1199,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1200,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1206,15'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1208,15'
          Dst:             setsockopt
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1220,9'
          Dst:             epoll_ctl
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1221,9'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    create_thread
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1343
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          98
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - epoll_create1
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - pthread_attr_destroy
        - pthread_attr_init
        - pthread_attr_setdetachstate
        - pthread_attr_setscope
        - pthread_create
        - thread_io_loop
        - timeouts_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1349,21'
          Dst:             timeouts_open
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1351,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1353,29'
          Dst:             epoll_create1
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1354,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1356,9'
          Dst:             pthread_attr_init
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1357,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1359,9'
          Dst:             pthread_attr_setscope
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1360,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1362,9'
          Dst:             pthread_attr_setdetachstate
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1363,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1365,9'
          Dst:             pthread_create
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1365,9'
          Dst:             thread_io_loop
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1366,9'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1368,9'
          Dst:             pthread_attr_destroy
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1369,9'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    epoll_create1
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_init
      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:    pthread_attr_setscope
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_setdetachstate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_destroy
      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:    topology_to_schedtbl
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1488
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - read_cpu_topology
        - siblings_to_schedtbl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1473,26'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1477,13'
          Dst:             read_cpu_topology
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1478,13'
          Dst:             siblings_to_schedtbl
    - functionName:    lwan_thread_init
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1744
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          373
      EdgeCount:       53
      CyclomaticComplexity: 11
      functionsReached:
        - __assert_fail
        - adjust_thread_affinity
        - calloc
        - create_listen_socket
        - create_thread
        - lwan_log_critical_debug
        - lwan_log_critical_perror_debug
        - lwan_log_debug_debug
        - pthread_barrier_init
        - sysconf
        - topology_to_schedtbl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1637,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1640,9'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1642,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1654,9'
          Dst:             sysconf
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1654,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1656,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1668,20'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1669,32'
          Dst:             topology_to_schedtbl
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1683,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1693,9'
          Dst:             pthread_barrier_init
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1694,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1723,9'
          Dst:             create_thread
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1725,34'
          Dst:             create_listen_socket
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1726,13'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1738,13'
          Dst:             adjust_thread_affinity
        - Src:             '/src/lwan/src/lib/lwan-thread.c:1741,5'
          Dst:             lwan_log_debug_debug
    - functionName:    pthread_barrier_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_await_read_write_timeout
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 941
      functionLinenumberEnd: 942
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_await_fd_timeout
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:942,12'
          Dst:             async_await_fd_timeout
    - functionName:    async_await_fd_timeout
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - async_await_fd
        - coro_defer_fire_and_disarm
        - lwan_request_sleep_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:917,27'
          Dst:             lwan_request_sleep_internal
        - Src:             '/src/lwan/src/lib/lwan-thread.c:918,15'
          Dst:             async_await_fd
        - Src:             '/src/lwan/src/lib/lwan-thread.c:921,9'
          Dst:             coro_defer_fire_and_disarm
    - functionName:    async_await_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          193
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - coro_yield
        - prepare_await
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:870,13'
          Dst:             prepare_await
        - Src:             '/src/lwan/src/lib/lwan-thread.c:878,29'
          Dst:             coro_yield
    - functionName:    lwan_request_await_write_timeout
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 935
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_await_fd_timeout
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:935,12'
          Dst:             async_await_fd_timeout
    - functionName:    lwan_request_await_read_timeout
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 929
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_await_fd_timeout
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:929,12'
          Dst:             async_await_fd_timeout
    - functionName:    lwan_request_await_read_write
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_await_fd
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:909,12'
          Dst:             async_await_fd
    - functionName:    lwan_request_await_write
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 904
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_await_fd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:904,12'
          Dst:             async_await_fd
    - functionName:    lwan_request_await_read
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_await_fd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:899,12'
          Dst:             async_await_fd
    - functionName:    lwan_request_awaitv_all
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          147
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - clear_awaitv_flags
        - coro_yield
        - lwan_log_perror_debug
        - prepare_awaitv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:817,15'
          Dst:             prepare_awaitv
        - Src:             '/src/lwan/src/lib/lwan-thread.c:821,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:822,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:823,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:828,21'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:838,17'
          Dst:             clear_awaitv_flags
    - functionName:    prepare_awaitv
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          240
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - clear_awaitv_flags
        - lwan_log_debug_debug
        - lwan_log_perror_debug
        - prepare_await
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:739,5'
          Dst:             clear_awaitv_flags
        - Src:             '/src/lwan/src/lib/lwan-thread.c:752,13'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:765,19'
          Dst:             prepare_await
        - Src:             '/src/lwan/src/lib/lwan-thread.c:767,13'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:768,13'
          Dst:             lwan_log_perror_debug
    - functionName:    clear_awaitv_flags
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 720
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          123
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_awaitv_any
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          129
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - clear_awaitv_flags
        - coro_yield
        - lwan_log_perror_debug
        - prepare_awaitv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:783,15'
          Dst:             prepare_awaitv
        - Src:             '/src/lwan/src/lib/lwan-thread.c:787,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-thread.c:788,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-thread.c:789,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:794,21'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-thread.c:801,13'
          Dst:             clear_awaitv_flags
    - functionName:    lwan_request_get_id
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_random_seed_prng_for_thread
        - lwan_random_uint64
        - lwan_request_get_id
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-thread.c:146,30'
          Dst:             lwan_random_uint64
        - Src:             '/src/lwan/src/lib/lwan-thread.c:149,13'
          Dst:             lwan_random_seed_prng_for_thread
        - Src:             '/src/lwan/src/lib/lwan-thread.c:150,20'
          Dst:             lwan_request_get_id
    - functionName:    lwan_random_uint64
      functionSourceFile: '/src/lwan/src/lib/lwan-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    append_two_digits
      functionSourceFile: '/src/lwan/src/lib/lwan-time.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uint_to_string_2_digits
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-time.c:124,23'
          Dst:             uint_to_string_2_digits
    - functionName:    lwan_format_rfc_time
      functionSourceFile: '/src/lwan/src/lib/lwan-time.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          118
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - append_two_digits
        - gmtime_r
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-time.c:134,9'
          Dst:             gmtime_r
        - Src:             '/src/lwan/src/lib/lwan-time.c:135,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-time.c:140,9'
          Dst:             append_two_digits
        - Src:             '/src/lwan/src/lib/lwan-time.c:145,9'
          Dst:             append_two_digits
        - Src:             '/src/lwan/src/lib/lwan-time.c:146,9'
          Dst:             append_two_digits
        - Src:             '/src/lwan/src/lib/lwan-time.c:150,9'
          Dst:             append_two_digits
        - Src:             '/src/lwan/src/lib/lwan-time.c:152,9'
          Dst:             append_two_digits
        - Src:             '/src/lwan/src/lib/lwan-time.c:154,9'
          Dst:             append_two_digits
    - functionName:    gmtime_r
      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:    parse_2_digit_num_no_end_check
      functionSourceFile: '/src/lwan/src/lib/lwan-time.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          50
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_2_digit_num
      functionSourceFile: '/src/lwan/src/lib/lwan-time.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_2_digit_num_no_end_check
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-time.c:45,12'
          Dst:             parse_2_digit_num_no_end_check
    - functionName:    lwan_parse_rfc_time
      functionSourceFile: '/src/lwan/src/lib/lwan-time.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         44
      ICount:          327
      EdgeCount:       47
      CyclomaticComplexity: 5
      functionsReached:
        - parse_2_digit_num
        - parse_2_digit_num_no_end_check
        - timegm
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-time.c:56,5'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-time.c:73,5'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-time.c:106,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-time.c:68,18'
          Dst:             parse_2_digit_num
        - Src:             '/src/lwan/src/lib/lwan-time.c:90,25'
          Dst:             parse_2_digit_num_no_end_check
        - Src:             '/src/lwan/src/lib/lwan-time.c:91,21'
          Dst:             parse_2_digit_num_no_end_check
        - Src:             '/src/lwan/src/lib/lwan-time.c:99,18'
          Dst:             parse_2_digit_num
        - Src:             '/src/lwan/src/lib/lwan-time.c:101,17'
          Dst:             parse_2_digit_num
        - Src:             '/src/lwan/src/lib/lwan-time.c:103,17'
          Dst:             parse_2_digit_num
        - Src:             '/src/lwan/src/lib/lwan-time.c:110,16'
          Dst:             timegm
    - functionName:    timegm
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_queue_expire_all
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - timeout_queue_empty
        - timeout_queue_expire
        - timeout_queue_idx_to_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tq.c:131,13'
          Dst:             timeout_queue_empty
        - Src:             '/src/lwan/src/lib/lwan-tq.c:133,13'
          Dst:             timeout_queue_idx_to_node
        - Src:             '/src/lwan/src/lib/lwan-tq.c:134,9'
          Dst:             timeout_queue_expire
    - functionName:    timeout_queue_empty
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_queue_idx_to_node
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_queue_expire
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          75
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - close
        - coro_free
        - timeout_queue_remove
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tq.c:92,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tq.c:94,5'
          Dst:             timeout_queue_remove
        - Src:             '/src/lwan/src/lib/lwan-tq.c:97,9'
          Dst:             coro_free
        - Src:             '/src/lwan/src/lib/lwan-tq.c:101,5'
          Dst:             close
    - functionName:    timeout_queue_remove
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_queue_idx_to_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tq.c:52,36'
          Dst:             timeout_queue_idx_to_node
        - Src:             '/src/lwan/src/lib/lwan-tq.c:53,36'
          Dst:             timeout_queue_idx_to_node
    - functionName:    timeout_queue_expire_waiting
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - lwan_send_websocket_ping_for_tq
        - timeout_queue_empty
        - timeout_queue_expire
        - timeout_queue_idx_to_node
        - timeout_queue_move_to_last
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tq.c:108,13'
          Dst:             timeout_queue_empty
        - Src:             '/src/lwan/src/lib/lwan-tq.c:110,13'
          Dst:             timeout_queue_idx_to_node
        - Src:             '/src/lwan/src/lib/lwan-tq.c:116,17'
          Dst:             lwan_send_websocket_ping_for_tq
        - Src:             '/src/lwan/src/lib/lwan-tq.c:117,17'
          Dst:             timeout_queue_move_to_last
        - Src:             '/src/lwan/src/lib/lwan-tq.c:122,9'
          Dst:             timeout_queue_expire
    - functionName:    timeout_queue_move_to_last
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeout_queue_insert
        - timeout_queue_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tq.c:72,5'
          Dst:             timeout_queue_remove
        - Src:             '/src/lwan/src/lib/lwan-tq.c:73,5'
          Dst:             timeout_queue_insert
    - functionName:    timeout_queue_insert
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - timeout_queue_idx_to_node
        - timeout_queue_node_to_idx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-tq.c:41,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-tq.c:45,36'
          Dst:             timeout_queue_idx_to_node
        - Src:             '/src/lwan/src/lib/lwan-tq.c:46,34'
          Dst:             timeout_queue_node_to_idx
    - functionName:    timeout_queue_node_to_idx
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_queue_init
      functionSourceFile: '/src/lwan/src/lib/lwan-tq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          44
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_trie_node_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - lwan_trie_node_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-trie.c:177,13'
          Dst:             lwan_trie_node_destroy
    - functionName:    lwan_trie_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - arena_reset
        - lwan_trie_node_destroy
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-trie.c:185,5'
          Dst:             lwan_trie_node_destroy
        - Src:             '/src/lwan/src/lib/lwan-trie.c:186,5'
          Dst:             arena_reset
    - functionName:    lwan_trie_lookup_prefix
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          228
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - __assert_fail
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-trie.c:149,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-trie.c:150,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-trie.c:156,39'
          Dst:             strncmp
    - functionName:    arena_strdup
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - arena_alloc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-trie.c:79,18'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-trie.c:80,17'
          Dst:             arena_alloc
    - functionName:    lwan_trie_add
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          293
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - arena_alloc
        - arena_strdup
        - lwan_log_critical_perror_debug
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-trie.c:97,9'
          Dst:             arena_alloc
        - Src:             '/src/lwan/src/lib/lwan-trie.c:100,5'
          Dst:             arena_alloc
        - Src:             '/src/lwan/src/lib/lwan-trie.c:103,9'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-trie.c:106,16'
          Dst:             arena_alloc
        - Src:             '/src/lwan/src/lib/lwan-trie.c:108,13'
          Dst:             lwan_log_critical_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-trie.c:115,21'
          Dst:             arena_strdup
        - Src:             '/src/lwan/src/lib/lwan-trie.c:122,5'
          Dst:             lwan_log_critical_perror_debug
    - functionName:    free_node_noop
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      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:    lwan_trie_init
      functionSourceFile: '/src/lwan/src/lib/lwan-trie.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - arena_init0
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-trie.c:45,5'
          Dst:             arena_init0
    - functionName:    lwan_writev
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_writev_fd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:56,17'
          Dst:             lwan_writev_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:58,9'
          Dst:             coro_yield
    - functionName:    __bswap_64
      functionSourceFile: '/usr/include/x86_64-linux-gnu/bits/byteswap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_websocket_frame
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          246
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - __bswap_64
        - __errno_location
        - htons
        - lwan_writev
        - writev
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:124,12'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:124,12'
          Dst:             __bswap_64
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:124,12'
          Dst:             lwan_writev
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:124,12'
          Dst:             writev
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:124,12'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:124,12'
          Dst:             __errno_location
    - functionName:    writev
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      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:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_response_websocket_read
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_response_websocket_read_hint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:430,12'
          Dst:             lwan_response_websocket_read_hint
    - functionName:    lwan_response_websocket_read_hint
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          323
      EdgeCount:       48
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - coro_yield
        - get_frame_length
        - htons
        - lwan_log_debug_debug
        - lwan_readv
        - lwan_recv
        - lwan_strbuf_extend_unsafe
        - lwan_strbuf_reset_trim
        - ping_pong
        - unmask
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-websocket.c:368,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:342,5'
          Dst:             lwan_strbuf_reset_trim
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:347,17'
          Dst:             lwan_recv
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:350,16'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:351,14'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:355,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:358,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:362,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:363,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:372,13'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:389,9'
          Dst:             ping_pong
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:397,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:401,24'
          Dst:             get_frame_length
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:402,17'
          Dst:             lwan_strbuf_extend_unsafe
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:404,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:413,5'
          Dst:             lwan_readv
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:414,5'
          Dst:             unmask
    - functionName:    lwan_recv
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          66
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - coro_yield
        - lwan_recv_fd
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:96,17'
          Dst:             lwan_recv_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:98,9'
          Dst:             coro_yield
    - functionName:    ping_pong
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - coro_yield
        - lwan_log_debug_debug
        - lwan_recv
        - unmask
        - write_websocket_frame
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:283,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:284,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:287,9'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:290,9'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:295,9'
          Dst:             lwan_recv
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:296,9'
          Dst:             unmask
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:297,9'
          Dst:             write_websocket_frame
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:303,9'
          Dst:             lwan_recv
    - functionName:    get_frame_length
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          113
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - __bswap_64
        - coro_yield
        - lwan_log_warning_debug
        - lwan_recv
        - ntohs
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-websocket.c:155,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:157,9'
          Dst:             lwan_recv
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:158,25'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:161,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:163,13'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:169,9'
          Dst:             lwan_recv
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:170,15'
          Dst:             __bswap_64
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:173,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:174,13'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:178,13'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:180,13'
          Dst:             coro_yield
    - functionName:    lwan_readv
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_readv_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:107,17'
          Dst:             lwan_readv_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:109,9'
          Dst:             coro_yield
    - functionName:    unmask
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          168
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-websocket.c:263,5'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwan_send_websocket_ping_for_tq
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          298
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - __bswap_64
        - __errno_location
        - clock_gettime
        - htons
        - lwan_random_uint64
        - lwan_writev
        - unmask
        - writev
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:309,33'
          Dst:             lwan_random_uint64
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:315,9'
          Dst:             clock_gettime
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:318,5'
          Dst:             unmask
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:327,12'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:327,12'
          Dst:             __bswap_64
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:327,12'
          Dst:             lwan_writev
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:327,12'
          Dst:             writev
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:327,12'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:327,12'
          Dst:             __errno_location
    - functionName:    lwan_response_websocket_write_binary
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_response_websocket_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:148,5'
          Dst:             lwan_response_websocket_write
    - functionName:    lwan_response_websocket_write
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_reset
        - write_websocket_frame
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:130,18'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:131,17'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:137,5'
          Dst:             write_websocket_frame
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:138,5'
          Dst:             lwan_strbuf_reset
    - functionName:    lwan_response_websocket_write_text
      functionSourceFile: '/src/lwan/src/lib/lwan-websocket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_response_websocket_write
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-websocket.c:143,5'
          Dst:             lwan_response_websocket_write
    - functionName:    destroy_script_name
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    create_script_name
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          163
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - asprintf
        - realpathat
        - snprintf
        - strlen
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:183,9'
          Dst:             asprintf
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:189,9'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:195,9'
          Dst:             realpathat
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:200,17'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:199,9'
          Dst:             strncmp
    - functionName:    asprintf
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    header_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:449,1'
          Dst:             lwan_array_reset
    - functionName:    header_array_get_array
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    header_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_inline
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:449,1'
          Dst:             lwan_array_append_inline
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    reset_additional_header
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - header_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:454,5'
          Dst:             header_array_reset
    - functionName:    header_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    discard
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwan_recv_fd
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:367,13'
          Dst:             lwan_recv_fd
    - functionName:    iovec_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:576,1'
          Dst:             lwan_array_reset
    - functionName:    iovec_array_get_array
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    flush_iovec
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - iovec_array_get_array
        - iovec_array_len
        - iovec_array_reset
        - lwan_writev_fd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:582,42'
          Dst:             iovec_array_get_array
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:583,29'
          Dst:             iovec_array_len
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:582,9'
          Dst:             lwan_writev_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:586,5'
          Dst:             iovec_array_reset
    - functionName:    iovec_array_len
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    add_int_param
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_param_len
        - int_to_string
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:160,15'
          Dst:             int_to_string
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:162,39'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:162,12'
          Dst:             add_param_len
    - functionName:    add_param_len
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - htonl
        - lwan_strbuf_append_char
        - lwan_strbuf_append_str
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:128,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:129,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:132,9'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:134,28'
          Dst:             htonl
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:135,9'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:139,9'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:141,28'
          Dst:             htonl
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:142,9'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:145,5'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:146,5'
          Dst:             lwan_strbuf_append_str
    - functionName:    htonl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    add_header_to_strbuf
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_param_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:250,12'
          Dst:             add_param_len
    - functionName:    fill_addr_and_port
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          167
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - add_int_param
        - add_param
        - getsockname
        - inet_ntop
        - lwan_request_get_remote_address_and_port
        - ntohs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:266,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:269,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:272,9'
          Dst:             getsockname
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:278,22'
          Dst:             inet_ntop
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:280,22'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:284,22'
          Dst:             inet_ntop
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:286,22'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:291,19'
          Dst:             lwan_request_get_remote_address_and_port
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:300,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:301,5'
          Dst:             add_int_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:303,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:304,5'
          Dst:             add_int_param
    - functionName:    add_param
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_param_len
        - strlen
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:152,39'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:152,59'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:152,12'
          Dst:             add_param_len
    - functionName:    getsockname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    build_stdin_records
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          245
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - arena_alloc
        - arena_reset
        - coro_arena_new
        - flush_iovec
        - htons
        - iovec_array_append
        - iovec_array_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:598,31'
          Dst:             coro_arena_new
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:606,22'
          Dst:             arena_alloc
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:612,23'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:613,32'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:616,21'
          Dst:             iovec_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:622,21'
          Dst:             iovec_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:627,17'
          Dst:             iovec_array_len
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:628,22'
          Dst:             flush_iovec
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:630,17'
          Dst:             arena_reset
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:638,13'
          Dst:             iovec_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:644,44'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:648,12'
          Dst:             flush_iovec
    - functionName:    iovec_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_inline
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:576,1'
          Dst:             lwan_array_append_inline
    - functionName:    iovec_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    add_script_paths
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - add_param
        - cache_coro_get_and_ref_entry
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:231,43'
          Dst:             cache_coro_get_and_ref_entry
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:235,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:236,9'
          Dst:             add_param
    - functionName:    add_params
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          131
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - add_header_to_strbuf
        - add_param
        - asprintf
        - fill_addr_and_port
        - lwan_request_foreach_header_for_cgi
        - lwan_request_get_method_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:317,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:319,10'
          Dst:             fill_addr_and_port
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:322,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:323,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:326,41'
          Dst:             lwan_request_get_method_str
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:326,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:330,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:332,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:333,5'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:341,13'
          Dst:             asprintf
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:346,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:347,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:351,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:352,9'
          Dst:             add_param
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:355,5'
          Dst:             lwan_request_foreach_header_for_cgi
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:355,5'
          Dst:             add_header_to_strbuf
    - functionName:    discard_unknown_record
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - discard
        - lwan_log_debug_debug
        - lwan_log_warning_debug
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:438,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:443,5'
          Dst:             lwan_log_debug_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:446,12'
          Dst:             discard
    - functionName:    handle_stderr
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          106
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - coro_defer
        - coro_defer_fire_and_disarm
        - discard
        - lwan_log_error_debug
        - lwan_recv_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:409,9'
          Dst:             coro_defer
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:412,21'
          Dst:             lwan_recv_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:421,5'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:424,5'
          Dst:             coro_defer_fire_and_disarm
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:426,12'
          Dst:             discard
    - functionName:    try_initiating_chunked_response
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         48
      ICount:          335
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - __assert_fail
        - coro_defer
        - coro_defer_fire_and_disarm
        - coro_strdup
        - header_array_append
        - header_array_get_array
        - header_array_init
        - lwan_find_headers
        - lwan_http_status_is_valid
        - lwan_response_send_chunk_full
        - lwan_response_set_chunked_full
        - lwan_strbuf_init
        - lwan_strbuf_reset
        - lwan_strbuf_set_static
        - lwan_strbuf_to_value
        - memmem
        - parse_int
        - reset_additional_header
        - strcaseequal_neutral
        - strchr
        - streq
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:471,32'
          Dst:             lwan_strbuf_to_value
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:473,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:477,10'
          Dst:             memmem
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:480,25'
          Dst:             lwan_find_headers
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:486,5'
          Dst:             header_array_init
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:487,46'
          Dst:             coro_defer
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:487,46'
          Dst:             reset_additional_header
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:495,13'
          Dst:             strchr
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:507,13'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:510,20'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:515,18'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:517,20'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:518,35'
          Dst:             coro_strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:519,20'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:520,17'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:526,33'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:528,27'
          Dst:             lwan_http_status_is_valid
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:533,17'
          Dst:             header_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:542,37'
          Dst:             header_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:548,41'
          Dst:             header_array_get_array
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:547,10'
          Dst:             lwan_response_set_chunked_full
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:552,5'
          Dst:             coro_defer_fire_and_disarm
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:560,9'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:561,9'
          Dst:             lwan_strbuf_set_static
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:562,9'
          Dst:             lwan_response_send_chunk_full
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:566,9'
          Dst:             lwan_strbuf_reset
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:572,5'
          Dst:             coro_defer_fire_and_disarm
    - functionName:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_stdout
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - discard
        - lwan_recv_fd
        - lwan_strbuf_extend_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:381,20'
          Dst:             lwan_strbuf_extend_unsafe
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:387,21'
          Dst:             lwan_recv_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:396,12'
          Dst:             discard
    - functionName:    send_request
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          221
      EdgeCount:       25
      CyclomaticComplexity: 9
      functionsReached:
        - add_params
        - add_script_paths
        - build_stdin_records
        - htons
        - iovec_array_append
        - iovec_array_init
        - lwan_request_get_request_body
        - lwan_strbuf_get_length
        - lwan_strbuf_reset
        - lwan_strbuf_to_iovec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:658,14'
          Dst:             add_params
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:662,14'
          Dst:             add_script_paths
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:666,9'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:681,5'
          Dst:             iovec_array_init
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:683,13'
          Dst:             iovec_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:693,31'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:695,29'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:697,48'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:702,31'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:704,39'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:703,40'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:710,13'
          Dst:             iovec_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:713,14'
          Dst:             lwan_strbuf_to_iovec
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:715,13'
          Dst:             iovec_array_append
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:721,44'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:726,30'
          Dst:             lwan_request_get_request_body
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:725,10'
          Dst:             build_stdin_records
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:730,5'
          Dst:             lwan_strbuf_reset
    - functionName:    try_connect
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          134
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - connect
        - getsockopt
        - lwan_request_await_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-fastcgi.c:764,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:740,9'
          Dst:             connect
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:746,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:746,28'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:757,9'
          Dst:             lwan_request_await_write
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:759,13'
          Dst:             getsockopt
    - functionName:    connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:118,5'
          Dst:             close
    - functionName:    fastcgi_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1054
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cache_destroy
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1049,5'
          Dst:             cache_destroy
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1051,5'
          Dst:             close
    - functionName:    fastcgi_create_from_hash
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fastcgi_create
        - hash_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1060,20'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1061,24'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1062,26'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1064,12'
          Dst:             fastcgi_create
    - functionName:    fastcgi_create
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          442
      EdgeCount:       80
      CyclomaticComplexity: 24
      functionsReached:
        - cache_create_full
        - cache_destroy
        - close
        - create_script_name
        - destroy_script_name
        - hash_lwan_value_new
        - htons
        - inet_pton
        - lwan_get_real_root_path
        - lwan_log_error_debug
        - lwan_log_perror_debug
        - lwan_socket_parse_address
        - lwan_straitjacket_allow_connect
        - lwan_straitjacket_allow_dirfd_ro
        - open64
        - parse_int
        - stat64
        - strdup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:884,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:888,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:897,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:901,29'
          Dst:             cache_create_full
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:901,29'
          Dst:             create_script_name
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:901,29'
          Dst:             destroy_script_name
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:901,29'
          Dst:             hash_lwan_value_new
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:904,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:909,18'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:910,16'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:913,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:917,23'
          Dst:             lwan_get_real_root_path
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:919,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:925,9'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:927,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:932,10'
          Dst:             lwan_straitjacket_allow_dirfd_ro
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:933,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:940,13'
          Dst:             stat64
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:941,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:947,13'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:952,13'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:953,13'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:963,16'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:969,20'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:973,23'
          Dst:             lwan_socket_parse_address
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:975,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:980,20'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:982,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:987,10'
          Dst:             lwan_straitjacket_allow_connect
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:988,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:995,13'
          Dst:             inet_pton
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:996,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1004,46'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1009,13'
          Dst:             inet_pton
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1010,13'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1018,48'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1021,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1033,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:1039,5'
          Dst:             cache_destroy
    - functionName:    fastcgi_handle_request
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-fastcgi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 875
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          255
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - close_fd
        - coro_defer
        - discard_unknown_record
        - handle_stderr
        - handle_stdout
        - lwan_recv_fd
        - lwan_response_send_chunk
        - lwan_strbuf_append_char
        - lwan_strbuf_get_length
        - ntohs
        - send_request
        - socket
        - try_connect
        - try_initiating_chunked_response
      functionUses:    0
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-fastcgi.c:829,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:793,9'
          Dst:             socket
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:797,5'
          Dst:             coro_defer
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:797,5'
          Dst:             close_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:799,10'
          Dst:             try_connect
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:804,14'
          Dst:             send_request
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:810,5'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:818,13'
          Dst:             lwan_recv_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:824,30'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:825,21'
          Dst:             ntohs
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:827,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:831,18'
          Dst:             handle_stdout
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:838,21'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:842,21'
          Dst:             lwan_response_send_chunk
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:852,26'
          Dst:             try_initiating_chunked_response
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:863,18'
          Dst:             handle_stderr
        - Src:             '/src/lwan/src/lib/lwan-mod-fastcgi.c:868,18'
          Dst:             discard_unknown_record
    - functionName:    parse_http_code
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - lwan_http_status_as_string_with_code
        - parse_int
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:85,14'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:89,13'
          Dst:             lwan_http_status_as_string_with_code
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:90,10'
          Dst:             strncmp
    - functionName:    redirect_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    redirect_create_from_hash
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_find
        - parse_http_code
        - redirect_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:100,15'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:102,29'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:102,13'
          Dst:             parse_http_code
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:105,12'
          Dst:             redirect_create
    - functionName:    redirect_create
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:55,16'
          Dst:             strdup
    - functionName:    redirect_handle_request
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-redirect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_memdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-redirect.c:41,9'
          Dst:             coro_memdup
    - functionName:    response_create_from_hash
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - hash_find
        - lwan_log_error_debug
        - parse_int
        - response_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:54,24'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:57,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:61,23'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:63,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:70,12'
          Dst:             response_create
    - functionName:    response_create
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_http_status_as_string_with_code
        - lwan_log_error_debug
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:41,9'
          Dst:             lwan_http_status_as_string_with_code
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:42,10'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-mod-response.c:43,9'
          Dst:             lwan_log_error_debug
    - functionName:    response_handle_request
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-response.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_condition_backref
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - config_error
        - config_read_line
        - lwan_log_critical_debug
        - parse_int
        - strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:752,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:751,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:754,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:759,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:769,21'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:771,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:776,19'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:778,17'
          Dst:             lwan_log_critical_debug
    - functionName:    parse_condition_accept_encoding
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          187
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - config_error
        - config_read_line
        - parse_bool
        - streq
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:712,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:711,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:714,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:722,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:723,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:725,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:726,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:728,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:729,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:731,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:732,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:734,25'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:735,17'
          Dst:             config_error
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    parse_condition_stat
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          222
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - config_error
        - config_read_line
        - parse_bool
        - strdup
        - streq
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:651,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:650,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:653,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:658,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:677,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:679,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:682,24'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:684,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:687,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:688,26'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:690,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:691,27'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:694,17'
          Dst:             config_error
    - functionName:    parse_condition_key_value
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          148
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - config_error
        - config_read_line
        - strdup
      functionUses:    5
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:596,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:595,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:598,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:603,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:613,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:620,19'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:622,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:627,21'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:629,17'
          Dst:             config_error
    - functionName:    pattern_array_append
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_append_heap
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:113,1'
          Dst:             lwan_array_append_heap
    - functionName:    parse_condition
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 840
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          159
      EdgeCount:       28
      CyclomaticComplexity: 10
      functionsReached:
        - config_error
        - parse_condition_accept_encoding
        - parse_condition_backref
        - parse_condition_key_value
        - parse_condition_stat
        - streq
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:809,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:810,16'
          Dst:             parse_condition_key_value
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:813,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:814,16'
          Dst:             parse_condition_key_value
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:817,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:818,16'
          Dst:             parse_condition_key_value
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:821,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:822,16'
          Dst:             parse_condition_key_value
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:825,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:826,16'
          Dst:             parse_condition_key_value
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:829,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:830,16'
          Dst:             parse_condition_stat
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:832,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:833,16'
          Dst:             parse_condition_accept_encoding
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:835,9'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:836,16'
          Dst:             parse_condition_backref
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:839,5'
          Dst:             config_error
    - functionName:    get_method_from_string
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - strcaseequal_neutral
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:798,5'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:798,5'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:798,5'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:798,5'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:798,5'
          Dst:             strcaseequal_neutral
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:798,5'
          Dst:             strcaseequal_neutral
    - functionName:    pattern_array_append0
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pattern_array_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:113,1'
          Dst:             pattern_array_append
    - functionName:    rewrite_parse_conf_pattern
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 957
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          415
      EdgeCount:       100
      CyclomaticComplexity: 25
      functionsReached:
        - config_error
        - config_read_line
        - get_method_from_string
        - parse_bool
        - parse_condition
        - pattern_array_append0
        - strdup
        - streq
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:859,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:850,15'
          Dst:             pattern_array_append0
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:854,24'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:858,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:861,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:864,31'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:867,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:870,30'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:873,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:874,35'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:875,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:876,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:878,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:879,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:881,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:882,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:884,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:885,21'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:888,24'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:889,22'
          Dst:             get_method_from_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:890,21'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:904,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:909,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:910,17'
          Dst:             parse_condition
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:912,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:917,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:929,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:938,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:955,5'
          Dst:             config_error
    - functionName:    pattern_array_reset
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_array_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:113,1'
          Dst:             lwan_array_reset
    - functionName:    pattern_array_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      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:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_int_len
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_int
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:159,22'
          Dst:             strnlen
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:159,12'
          Dst:             parse_int
    - functionName:    expand_string
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          246
      EdgeCount:       49
      CyclomaticComplexity: 15
      functionsReached:
        - lwan_strbuf_append_char
        - lwan_strbuf_append_str
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - lwan_strbuf_init_with_fixed_buffer
        - parse_int_len
        - strchr
        - strlen
        - strspn
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:171,11'
          Dst:             strchr
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:175,10'
          Dst:             lwan_strbuf_init_with_fixed_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:179,28'
          Dst:             strspn
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:184,17'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:191,31'
          Dst:             parse_int_len
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:196,17'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:202,20'
          Dst:             lwan_strbuf_append_char
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:207,21'
          Dst:             strchr
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:209,34'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:211,10'
          Dst:             lwan_strbuf_append_str
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:214,9'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:217,12'
          Dst:             lwan_strbuf_get_buffer
    - functionName:    strspn
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_request_get_method
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    module_rewrite_as
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coro_strdup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:139,26'
          Dst:             coro_strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:144,24'
          Dst:             strlen
    - functionName:    module_redirect_to
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - coro_memdup
        - coro_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:123,22'
          Dst:             coro_strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:128,9'
          Dst:             coro_memdup
    - functionName:    condition_matches
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         144
      ICount:          859
      EdgeCount:       186
      CyclomaticComplexity: 44
      functionsReached:
        - __assert_fail
        - expand_string
        - lwan_request_get_accept_encoding
        - lwan_request_get_cookie
        - lwan_request_get_method
        - lwan_request_get_post_param
        - lwan_request_get_query_param
        - memcmp
        - secure_getenv
        - stat64
        - streq
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:300,13'
          Dst:             lwan_request_get_method
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:305,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:306,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:312,28'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:317,13'
          Dst:             memcmp
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:334,15'
          Dst:             lwan_request_get_accept_encoding
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:354,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:355,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:358,13'
          Dst:             lwan_request_get_cookie
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:362,27'
          Dst:             expand_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:364,22'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:369,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:370,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:372,31'
          Dst:             secure_getenv
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:376,27'
          Dst:             expand_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:378,22'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:383,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:384,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:387,13'
          Dst:             lwan_request_get_query_param
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:392,27'
          Dst:             expand_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:394,22'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:399,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:400,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:403,13'
          Dst:             lwan_request_get_post_param
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:407,27'
          Dst:             expand_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:409,22'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:414,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:423,28'
          Dst:             expand_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:425,22'
          Dst:             stat64
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:467,5'
          Dst:             __assert_fail
    - functionName:    rewrite_parse_conf
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 960
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - config_error
        - config_last_error
        - config_read_line
        - rewrite_parse_conf_pattern
        - streq
      functionUses:    0
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:965,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:964,20'
          Dst:             config_read_line
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:967,13'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:970,17'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:971,17'
          Dst:             rewrite_parse_conf_pattern
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:973,17'
          Dst:             config_error
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:981,13'
          Dst:             config_last_error
    - functionName:    rewrite_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          239
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - pattern_array_reset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:576,5'
          Dst:             pattern_array_reset
    - functionName:    rewrite_create_from_hash
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - rewrite_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:584,12'
          Dst:             rewrite_create
    - functionName:    rewrite_create
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pattern_array_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:530,5'
          Dst:             pattern_array_init
    - functionName:    rewrite_handle_request
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-rewrite.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          172
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - condition_matches
        - expand_string
        - module_redirect_to
        - module_rewrite_as
        - str_find
      functionUses:    0
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:496,9'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/lwan-mod-rewrite.c:508,13'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:489,20'
          Dst:             str_find
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:493,14'
          Dst:             condition_matches
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:503,24'
          Dst:             expand_string
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:510,24'
          Dst:             module_redirect_to
        - Src:             '/src/lwan/src/lib/lwan-mod-rewrite.c:512,24'
          Dst:             module_rewrite_as
    - functionName:    directory_list_generator
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          287
      EdgeCount:       52
      CyclomaticComplexity: 15
      functionsReached:
        - closedir
        - coro_yield
        - dirfd
        - fstatat64
        - is_world_readable
        - lwan_determine_mime_type_for_file_name
        - opendir
        - readdir64
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:286,11'
          Dst:             opendir
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:290,10'
          Dst:             dirfd
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:294,21'
          Dst:             readdir64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:300,13'
          Dst:             fstatat64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:303,14'
          Dst:             is_world_readable
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:315,17'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:341,13'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:346,5'
          Dst:             closedir
    - functionName:    fstatat64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_world_readable
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sendfile_free
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:906,9'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:908,9'
          Dst:             close
    - functionName:    sendfile_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          165
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - lwan_determine_mime_type_for_file_name
        - openat64
        - try_open_compressed
        - try_readahead
      functionUses:    0
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-serve-files.c:610,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:606,21'
          Dst:             lwan_determine_mime_type_for_file_name
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:608,27'
          Dst:             openat64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:610,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:616,56'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:628,18'
          Dst:             try_open_compressed
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:638,5'
          Dst:             try_readahead
    - functionName:    openat64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    try_open_compressed
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          165
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - close
        - fstat64
        - is_world_readable
        - openat64
        - snprintf
        - try_readahead
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:497,11'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:501,10'
          Dst:             openat64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:505,11'
          Dst:             fstat64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:512,9'
          Dst:             is_world_readable
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:519,9'
          Dst:             try_readahead
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:525,5'
          Dst:             close
    - functionName:    try_readahead
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_readahead_queue
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:484,5'
          Dst:             lwan_readahead_queue
    - functionName:    mmap_fd
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - mmap64
        - set_vma_anon_name
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:541,11'
          Dst:             mmap64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:542,5'
          Dst:             close
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:546,5'
          Dst:             set_vma_anon_name
    - functionName:    mmap_best_data
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1260
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - accepts_encoding
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1282,9'
          Dst:             accepts_encoding
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1288,9'
          Dst:             accepts_encoding
    - functionName:    accepts_encoding
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1160
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_request_get_accept_encoding
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1160,12'
          Dst:             lwan_request_get_accept_encoding
    - functionName:    mmap_free
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - munmap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:889,5'
          Dst:             munmap
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:891,9'
          Dst:             munmap
    - functionName:    mmap_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          142
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - deflate_value
        - lwan_determine_mime_type_for_file_name
        - lwan_madvise_queue
        - mmap_fd
        - openat64
        - try_open_compressed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:565,15'
          Dst:             openat64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:568,10'
          Dst:             mmap_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:570,5'
          Dst:             lwan_madvise_queue
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:575,19'
          Dst:             try_open_compressed
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:576,9'
          Dst:             mmap_fd
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:582,5'
          Dst:             deflate_value
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:591,9'
          Dst:             lwan_determine_mime_type_for_file_name
    - functionName:    deflate_value
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - compress
        - compressBound
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:395,33'
          Dst:             compressBound
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:402,9'
          Dst:             compress
    - functionName:    compressBound
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compress
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mmap_serve
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1339
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          208
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - compute_range
        - coro_yield
        - lwan_madvise_queue
        - mincore
        - mmap_best_data
        - serve_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1303,9'
          Dst:             mmap_best_data
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1253,12'
          Dst:             serve_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1315,14'
          Dst:             mincore
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1323,17'
          Dst:             lwan_madvise_queue
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1324,17'
          Dst:             coro_yield
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1333,9'
          Dst:             compute_range
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1337,12'
          Dst:             serve_buffer
    - functionName:    serve_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1227
      functionLinenumberEnd: 1233
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_set_static
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1231,5'
          Dst:             lwan_strbuf_set_static
    - functionName:    mincore
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compute_range
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1155
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          158
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - lwan_request_get_range
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1125,13'
          Dst:             lwan_request_get_range
    - functionName:    dirlist_find_readme
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          88
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - lwan_strbuf_get_buffer
        - lwan_strbuf_init_from_file
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:677,13'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:681,13'
          Dst:             lwan_strbuf_init_from_file
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:682,20'
          Dst:             lwan_strbuf_get_buffer
    - functionName:    lwan_strbuf_get_buffer
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_strbuf_get_length
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dirlist_free
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:915,5'
          Dst:             lwan_strbuf_free
    - functionName:    dirlist_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - deflate_value
        - dirlist_find_readme
        - get_rel_path
        - lwan_strbuf_free
        - lwan_strbuf_init
        - lwan_strbuf_to_value
        - lwan_tpl_apply_with_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:697,10'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:699,10'
          Dst:             lwan_strbuf_init
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:704,21'
          Dst:             get_rel_path
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:705,19'
          Dst:             dirlist_find_readme
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:708,10'
          Dst:             lwan_tpl_apply_with_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:714,34'
          Dst:             lwan_strbuf_to_value
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:715,5'
          Dst:             deflate_value
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:724,5'
          Dst:             lwan_strbuf_free
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:726,5'
          Dst:             lwan_strbuf_free
    - functionName:    get_rel_path
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - streq
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:657,9'
          Dst:             streq
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    dirlist_serve
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1343
      functionLinenumberEnd: 1378
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          234
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - accepts_encoding
        - lwan_request_get_query_param
        - lwan_strbuf_get_buffer
        - lwan_strbuf_get_length
        - serve_buffer
      functionUses:    0
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-serve-files.c:1366,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1346,24'
          Dst:             lwan_request_get_query_param
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1356,33'
          Dst:             accepts_encoding
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1253,12'
          Dst:             serve_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1362,38'
          Dst:             lwan_strbuf_get_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1363,13'
          Dst:             lwan_strbuf_get_length
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1361,16'
          Dst:             serve_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1253,12'
          Dst:             serve_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1253,12'
          Dst:             serve_buffer
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1253,12'
          Dst:             serve_buffer
    - functionName:    lwan_strbuf_set_staticz
      functionSourceFile: '/src/lwan/src/lib/lwan-strbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwan_strbuf_set_static
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:77,43'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-strbuf.h:77,12'
          Dst:             lwan_strbuf_set_static
    - functionName:    redir_free
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    redir_init
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - asprintf
        - get_rel_path
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:738,21'
          Dst:             get_rel_path
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:737,12'
          Dst:             asprintf
    - functionName:    redir_serve
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          67
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coro_memdup
        - lwan_strbuf_set_staticz
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1387,5'
          Dst:             lwan_strbuf_set_staticz
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1390,9'
          Dst:             coro_memdup
    - functionName:    create_cache_entry_from_funcs
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          83
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - create_cache_entry_from_funcs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:834,12'
          Dst:             create_cache_entry_from_funcs
    - functionName:    sendfile_serve
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1165
      functionLinenumberEnd: 1219
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          188
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - accepts_encoding
        - compute_range
        - lwan_request_get_method
        - lwan_send
        - lwan_sendfile
        - prepare_headers
      functionUses:    1
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/lwan-mod-serve-files.c:1196,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1176,32'
          Dst:             accepts_encoding
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1187,13'
          Dst:             compute_range
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1207,18'
          Dst:             prepare_headers
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1212,9'
          Dst:             lwan_request_get_method
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1213,9'
          Dst:             lwan_send
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1215,9'
          Dst:             lwan_sendfile
    - functionName:    prepare_headers
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1099
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwan_prepare_response_header_full
        - uint_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1109,22'
          Dst:             uint_to_string
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1116,12'
          Dst:             lwan_prepare_response_header_full
    - functionName:    lwan_request_get_method
      functionSourceFile: '/src/lwan/src/lib/lwan.h'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_send
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          51
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_send_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:69,17'
          Dst:             lwan_send_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:71,9'
          Dst:             coro_yield
    - functionName:    lwan_sendfile
      functionSourceFile: '/src/lwan/src/lib/lwan-io-wrappers.h'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          57
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - coro_yield
        - lwan_sendfile_fd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:84,13'
          Dst:             lwan_sendfile_fd
        - Src:             '/src/lwan/src/lib/lwan-io-wrappers.h:87,9'
          Dst:             coro_yield
    - functionName:    get_funcs
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          240
      EdgeCount:       43
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - fstatat64
        - is_world_readable
        - snprintf
        - strlen
        - strncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:757,35'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:762,41'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:766,23'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:775,13'
          Dst:             fstatat64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:776,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:789,13'
          Dst:             is_world_readable
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:796,9'
          Dst:             strncpy
    - functionName:    destroy_cache_entry
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    create_cache_entry
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 850
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          149
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - create_cache_entry_from_funcs
        - destroy_cache_entry
        - get_funcs
        - is_world_readable
        - lwan_format_rfc_time
        - realpathat2
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:857,9'
          Dst:             realpathat2
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:861,9'
          Dst:             is_world_readable
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:864,9'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:867,13'
          Dst:             get_funcs
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:871,11'
          Dst:             create_cache_entry_from_funcs
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:875,9'
          Dst:             lwan_format_rfc_time
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:877,9'
          Dst:             destroy_cache_entry
    - functionName:    serve_files_destroy
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cache_destroy
        - close
        - lwan_log_warning_debug
        - lwan_tpl_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1072,9'
          Dst:             lwan_log_warning_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1076,5'
          Dst:             lwan_tpl_free
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1077,5'
          Dst:             cache_destroy
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1078,5'
          Dst:             close
    - functionName:    serve_files_create_from_hash
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1048
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          61
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_find
        - parse_bool
        - parse_long
        - parse_time_period
        - serve_files_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1050,22'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1051,23'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1055,36'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1056,42'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1056,31'
          Dst:             parse_long
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1060,48'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1060,30'
          Dst:             parse_time_period
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1053,24'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1053,13'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1054,34'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1054,23'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1059,24'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1059,13'
          Dst:             parse_bool
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1064,12'
          Dst:             serve_files_create
    - functionName:    serve_files_create
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         42
      ICount:          264
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - cache_create
        - cache_destroy
        - close
        - create_cache_entry
        - destroy_cache_entry
        - lwan_get_real_root_path
        - lwan_log_error_debug
        - lwan_log_perror_debug
        - lwan_straitjacket_allow_dirfd_ro
        - lwan_tpl_compile_file
        - lwan_tpl_compile_value_full
        - open64
        - strdup
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:960,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:964,22'
          Dst:             lwan_get_real_root_path
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:966,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:971,15'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:973,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:977,10'
          Dst:             lwan_straitjacket_allow_dirfd_ro
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:978,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:984,9'
          Dst:             lwan_log_perror_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:988,19'
          Dst:             cache_create
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:988,19'
          Dst:             create_cache_entry
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:988,19'
          Dst:             destroy_cache_entry
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:991,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:996,36'
          Dst:             lwan_tpl_compile_file
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1000,13'
          Dst:             lwan_tpl_compile_value_full
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1005,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1009,20'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1011,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1016,27'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1034,5'
          Dst:             cache_destroy
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1039,5'
          Dst:             close
    - functionName:    lwan_get_real_root_path
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          72
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - asprintf
        - realpath
        - strdup
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:934,12'
          Dst:             realpath
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:938,24'
          Dst:             strrchr
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:943,16'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:946,9'
          Dst:             asprintf
    - functionName:    serve_files_handle_request
      functionSourceFile: '/src/lwan/src/lib/lwan-mod-serve-files.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1400
      functionLinenumberEnd: 1425
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          149
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - cache_coro_get_and_ref_entry
        - lwan_request_get_if_modified_since
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1405,10'
          Dst:             cache_coro_get_and_ref_entry
        - Src:             '/src/lwan/src/lib/lwan-mod-serve-files.c:1411,9'
          Dst:             lwan_request_get_if_modified_since
    - functionName:    lwan_constructor_bin2hex_00007ffd8032b068
      functionSourceFile: '/work/lwan/servefile-data.h'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    self_test_strcaseequal_neutral
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         33
      ICount:          160
      EdgeCount:       33
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - strcaseequal_neutral_len
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:584,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:584,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:585,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:585,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:586,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:586,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:588,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:588,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:589,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:589,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:590,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:590,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:592,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:592,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:593,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:593,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:594,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:594,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/missing.c:595,5'
          Dst:             strcaseequal_neutral_len
        - Src:             '/src/lwan/src/lib/missing.c:595,5'
          Dst:             __assert_fail
    - functionName:    strcaseequal_neutral_len
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - isalpha_neutral
      functionUses:    13
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/missing.c:554,9'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:565,17'
          Dst:             isalpha_neutral
        - Src:             '/src/lwan/src/lib/missing.c:565,40'
          Dst:             isalpha_neutral
        - Src:             '/src/lwan/src/lib/missing.c:573,5'
          Dst:             __assert_fail
    - functionName:    isalpha_neutral
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 544
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_vma_anon_name
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - prctl
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:625,23'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/missing.c:626,5'
          Dst:             prctl
        - Src:             '/src/lwan/src/lib/missing.c:627,5'
          Dst:             __errno_location
    - functionName:    prctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcaseequal_neutral
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcaseequal_neutral_len
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:579,12'
          Dst:             strcaseequal_neutral_len
    - functionName:    lwan_getentropy_fallback
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - open64
        - read
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:495,10'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/missing.c:497,14'
          Dst:             open64
        - Src:             '/src/lwan/src/lib/missing.c:501,26'
          Dst:             read
        - Src:             '/src/lwan/src/lib/missing.c:502,5'
          Dst:             close
    - functionName:    lwan_getentropy
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwan_getentropy_fallback
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:510,14'
          Dst:             syscall
        - Src:             '/src/lwan/src/lib/missing.c:513,16'
          Dst:             lwan_getentropy_fallback
    - functionName:    proc_pidpath
      functionSourceFile: '/src/lwan/src/lib/missing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - getauxval
        - getpid
        - readlink
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing.c:147,9'
          Dst:             getpid
        - Src:             '/src/lwan/src/lib/missing.c:148,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/missing.c:154,40'
          Dst:             getauxval
        - Src:             '/src/lwan/src/lib/missing.c:157,22'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/missing.c:167,16'
          Dst:             readlink
        - Src:             '/src/lwan/src/lib/missing.c:177,5'
          Dst:             __errno_location
    - functionName:    getauxval
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_set_name_np
      functionSourceFile: '/src/lwan/src/lib/missing-pthread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setname_np
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing-pthread.c:90,12'
          Dst:             pthread_setname_np
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_decode
      functionSourceFile: '/src/lwan/src/lib/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          263
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_encoded_len
      functionSourceFile: '/src/lwan/src/lib/base64.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 16
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base64_encode
      functionSourceFile: '/src/lwan/src/lib/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          251
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - base64_encoded_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/base64.c:78,12'
          Dst:             base64_encoded_len
    - functionName:    base64_validate
      functionSourceFile: '/src/lwan/src/lib/base64.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    self_test_hash_table
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         144
      ICount:          639
      EdgeCount:       154
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - hash_add
        - hash_add_unique
        - hash_del
        - hash_find
        - hash_iter
        - hash_iter_next
        - hash_str_new
        - hash_unref
        - snprintf
        - strdup
        - streq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:565,23'
          Dst:             hash_str_new
        - Src:             '/src/lwan/src/lib/hash.c:568,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:569,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:570,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:572,22'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/hash.c:572,9'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/hash.c:573,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:574,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:575,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:577,22'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/hash.c:577,9'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/hash.c:578,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:579,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:580,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:582,22'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/hash.c:582,9'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/hash.c:583,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:584,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:585,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:587,22'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/hash.c:588,9'
          Dst:             hash_add_unique
        - Src:             '/src/lwan/src/lib/hash.c:589,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:590,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:591,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:597,5'
          Dst:             hash_iter
        - Src:             '/src/lwan/src/lib/hash.c:597,5'
          Dst:             hash_iter_next
        - Src:             '/src/lwan/src/lib/hash.c:598,25'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/hash.c:599,13'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/hash.c:601,32'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/hash.c:602,20'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/hash.c:605,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:609,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:610,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:611,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:615,9'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/hash.c:616,26'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/hash.c:616,13'
          Dst:             hash_add
        - Src:             '/src/lwan/src/lib/hash.c:617,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:618,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:620,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:623,5'
          Dst:             hash_iter
        - Src:             '/src/lwan/src/lib/hash.c:623,5'
          Dst:             hash_iter_next
        - Src:             '/src/lwan/src/lib/hash.c:626,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:630,9'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/hash.c:631,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:632,5'
          Dst:             streq
        - Src:             '/src/lwan/src/lib/hash.c:632,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:634,9'
          Dst:             hash_find
        - Src:             '/src/lwan/src/lib/hash.c:635,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:637,9'
          Dst:             hash_del
        - Src:             '/src/lwan/src/lib/hash.c:638,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:639,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:641,9'
          Dst:             hash_del
        - Src:             '/src/lwan/src/lib/hash.c:642,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:643,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:645,9'
          Dst:             hash_del
        - Src:             '/src/lwan/src/lib/hash.c:646,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:647,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:651,9'
          Dst:             snprintf
        - Src:             '/src/lwan/src/lib/hash.c:653,13'
          Dst:             hash_del
        - Src:             '/src/lwan/src/lib/hash.c:654,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:655,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:657,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:660,5'
          Dst:             hash_iter
        - Src:             '/src/lwan/src/lib/hash.c:660,5'
          Dst:             hash_iter_next
        - Src:             '/src/lwan/src/lib/hash.c:663,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:665,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:667,5'
          Dst:             hash_unref
    - functionName:    hash_str_new
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_custom_new
        - hash_str_eq
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:240,12'
          Dst:             hash_custom_new
        - Src:             '/src/lwan/src/lib/hash.c:240,12'
          Dst:             hash_str_eq
    - functionName:    hash_add
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add_internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:498,12'
          Dst:             hash_add_internal
    - functionName:    hash_add_unique
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:503,12'
          Dst:             hash_add_internal
    - functionName:    hash_iter
      functionSourceFile: '/src/lwan/src/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_iter_next
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          101
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    streq
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/missing/string.h:71,12'
          Dst:             strcmp
    - functionName:    hash_find
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_probe
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:531,29'
          Dst:             hash_probe
    - functionName:    hash_del
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          108
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hash_probe
        - hash_resize
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:508,29'
          Dst:             hash_probe
        - Src:             '/src/lwan/src/lib/hash.c:521,13'
          Dst:             hash_resize
    - functionName:    hash_unref
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - hash_iter
        - hash_iter_next
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:273,9'
          Dst:             hash_iter
        - Src:             '/src/lwan/src/lib/hash.c:273,9'
          Dst:             hash_iter_next
    - functionName:    hash_probe
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_probe_key
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:378,12'
          Dst:             hash_probe_key
    - functionName:    hash_resize
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          266
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - lwan_log_critical_debug
        - memchr
        - reallocarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:387,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:399,30'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/hash.c:406,17'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/hash.c:415,13'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:416,25'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/hash.c:420,20'
          Dst:             reallocarray
        - Src:             '/src/lwan/src/lib/hash.c:429,18'
          Dst:             reallocarray
    - functionName:    hash_probe_key
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          141
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - hash_probe_half
        - memchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:331,14'
          Dst:             hash_probe_half
        - Src:             '/src/lwan/src/lib/hash.c:336,14'
          Dst:             hash_probe_half
        - Src:             '/src/lwan/src/lib/hash.c:349,13'
          Dst:             memchr
    - functionName:    hash_probe_half
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          124
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - memchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:296,9'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/hash.c:298,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:306,9'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:307,19'
          Dst:             memchr
    - functionName:    hash_add_internal
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          245
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - hash_probe_key
        - hash_probe_tombstone
        - hash_resize
        - lwan_log_critical_debug
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:449,14'
          Dst:             hash_probe_key
        - Src:             '/src/lwan/src/lib/hash.c:475,21'
          Dst:             hash_resize
        - Src:             '/src/lwan/src/lib/hash.c:481,18'
          Dst:             hash_probe_tombstone
        - Src:             '/src/lwan/src/lib/hash.c:488,13'
          Dst:             lwan_log_critical_debug
    - functionName:    hash_probe_tombstone
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_probe_half_tombstone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:369,12'
          Dst:             hash_probe_half_tombstone
        - Src:             '/src/lwan/src/lib/hash.c:370,19'
          Dst:             hash_probe_half_tombstone
    - functionName:    hash_probe_half_tombstone
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:318,9'
          Dst:             memchr
    - functionName:    hash_str_eq
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:83,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:84,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:85,13'
          Dst:             strcmp
    - functionName:    hash_custom_new
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          158
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - calloc
        - lwan_log_error_debug
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:197,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/hash.c:201,9'
          Dst:             lwan_log_error_debug
        - Src:             '/src/lwan/src/lib/hash.c:209,15'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/hash.c:212,17'
          Dst:             calloc
    - functionName:    free_key_value_noop
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 185
      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:    hash_str_fnv1a
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - fnv1a_32
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:77,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:78,26'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/hash.c:78,12'
          Dst:             fnv1a_32
    - functionName:    fnv1a_32
      functionSourceFile: '/src/lwan/src/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_lwan_value_fnv1a
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - fnv1a_32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:103,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:105,12'
          Dst:             fnv1a_32
    - functionName:    hash_int_fnv1a
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fnv1a_32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:91,12'
          Dst:             fnv1a_32
    - functionName:    hash_crc32
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          111
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_lwan_value_crc32
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - hash_crc32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:169,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/hash.c:171,12'
          Dst:             hash_crc32
    - functionName:    hash_int_crc32
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_str_crc32
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_crc32
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:158,28'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/hash.c:158,12'
          Dst:             hash_crc32
    - functionName:    fnv1a_64
      functionSourceFile: '/src/lwan/src/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         5
      ICount:          40
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_get_count
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 535
      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:    hash_ref
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_lwan_value_eq
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:113,17'
          Dst:             memcmp
    - functionName:    hash_lwan_value_new
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_custom_new
        - hash_lwan_value_eq
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:252,12'
          Dst:             hash_custom_new
        - Src:             '/src/lwan/src/lib/hash.c:252,12'
          Dst:             hash_lwan_value_eq
    - functionName:    hash_int_eq
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_int_new
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_custom_new
        - hash_int_eq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:246,12'
          Dst:             hash_custom_new
        - Src:             '/src/lwan/src/lib/hash.c:246,12'
          Dst:             hash_int_eq
    - functionName:    lwan_constructor_detect_crc32
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __cpu_indicator_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:176,5'
          Dst:             __cpu_indicator_init
    - functionName:    __cpu_indicator_init
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwan_constructor_randomize_seed
      functionSourceFile: '/src/lwan/src/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          33
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - fnv1a_32
        - fnv1a_64
        - lwan_getentropy
        - lwan_log_critical_debug
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/hash.c:61,9'
          Dst:             lwan_getentropy
        - Src:             '/src/lwan/src/lib/hash.c:62,9'
          Dst:             lwan_log_critical_debug
        - Src:             '/src/lwan/src/lib/hash.c:66,21'
          Dst:             fnv1a_32
        - Src:             '/src/lwan/src/lib/hash.c:67,21'
          Dst:             fnv1a_64
    - functionName:    int_to_string
      functionSourceFile: '/src/lwan/src/lib/int-to-str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          268
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uint_to_string
      functionSourceFile: '/src/lwan/src/lib/int-to-str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          119
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uint_to_string_2_digits
      functionSourceFile: '/src/lwan/src/lib/int-to-str.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/int-to-str.c:36,5'
          Dst:             __assert_fail
    - functionName:    list_check
      functionSourceFile: '/src/lwan/src/lib/list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_check_node
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.c:99,10'
          Dst:             list_check_node
    - functionName:    list_check_node
      functionSourceFile: '/src/lwan/src/lib/list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - corrupt
        - is_poisoned
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.c:79,9'
          Dst:             is_poisoned
        - Src:             '/src/lwan/src/lib/list.c:80,16'
          Dst:             corrupt
        - Src:             '/src/lwan/src/lib/list.c:85,20'
          Dst:             corrupt
        - Src:             '/src/lwan/src/lib/list.c:89,16'
          Dst:             corrupt
    - functionName:    is_poisoned
      functionSourceFile: '/src/lwan/src/lib/list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          89
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.c:49,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/list.c:50,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/list.c:51,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/list.c:52,5'
          Dst:             __assert_fail
    - functionName:    corrupt
      functionSourceFile: '/src/lwan/src/lib/list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - fprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.c:64,9'
          Dst:             fprintf
        - Src:             '/src/lwan/src/lib/list.c:66,9'
          Dst:             abort
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_poison_node
      functionSourceFile: '/src/lwan/src/lib/list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    push_onecapture
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          159
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - match_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:516,11'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:520,11'
          Dst:             match_error
    - functionName:    match_error
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_capture
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - match_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:81,10'
          Dst:             match_error
    - functionName:    match_class
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          191
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - __ctype_b_loc
        - tolower
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/patterns.c:129,2'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:129,10'
          Dst:             tolower
        - Src:             '/src/lwan/src/lib/patterns.c:131,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:134,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:137,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:140,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:143,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:146,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:149,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:152,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:155,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:158,9'
          Dst:             __ctype_b_loc
        - Src:             '/src/lwan/src/lib/patterns.c:163,10'
          Dst:             __ctype_b_loc
    - functionName:    tolower
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    capture_to_close
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - match_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:92,9'
          Dst:             match_error
    - functionName:    min_expand
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - match
        - singlematch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:261,21'
          Dst:             match
        - Src:             '/src/lwan/src/lib/patterns.c:264,12'
          Dst:             singlematch
    - functionName:    match
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         82
      ICount:          460
      EdgeCount:       98
      CyclomaticComplexity: 18
      functionsReached:
        - classend
        - end_capture
        - match
        - match_capture
        - match_error
        - matchbalance
        - matchbracketclass
        - max_expand
        - min_expand
        - singlematch
        - start_capture
      functionUses:    6
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/patterns.c:335,3'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/patterns.c:359,4'
          Branch Sides:    []
        - Branch String:   '/src/lwan/src/lib/patterns.c:434,5'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:327,3'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:340,9'
          Dst:             start_capture
        - Src:             '/src/lwan/src/lib/patterns.c:342,9'
          Dst:             start_capture
        - Src:             '/src/lwan/src/lib/patterns.c:346,8'
          Dst:             end_capture
        - Src:             '/src/lwan/src/lib/patterns.c:362,9'
          Dst:             matchbalance
        - Src:             '/src/lwan/src/lib/patterns.c:373,6'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:378,10'
          Dst:             classend
        - Src:             '/src/lwan/src/lib/patterns.c:383,10'
          Dst:             matchbracketclass
        - Src:             '/src/lwan/src/lib/patterns.c:385,9'
          Dst:             matchbracketclass
        - Src:             '/src/lwan/src/lib/patterns.c:396,9'
          Dst:             match_capture
        - Src:             '/src/lwan/src/lib/patterns.c:412,9'
          Dst:             classend
        - Src:             '/src/lwan/src/lib/patterns.c:417,9'
          Dst:             singlematch
        - Src:             '/src/lwan/src/lib/patterns.c:419,6'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:438,10'
          Dst:             match
        - Src:             '/src/lwan/src/lib/patterns.c:455,10'
          Dst:             max_expand
        - Src:             '/src/lwan/src/lib/patterns.c:459,10'
          Dst:             min_expand
    - functionName:    singlematch
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       10
      CyclomaticComplexity: 2
      functionsReached:
        - match_class
        - matchbracketclass
      functionUses:    3
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/patterns.c:198,3'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:203,11'
          Dst:             match_class
        - Src:             '/src/lwan/src/lib/patterns.c:205,11'
          Dst:             matchbracketclass
    - functionName:    matchbracketclass
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - match_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:178,8'
          Dst:             match_class
    - functionName:    start_capture
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          86
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - match
        - match_error
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:278,3'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:285,13'
          Dst:             match
    - functionName:    end_capture
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - capture_to_close
        - match
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:293,10'
          Dst:             capture_to_close
        - Src:             '/src/lwan/src/lib/patterns.c:300,13'
          Dst:             match
    - functionName:    matchbalance
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - match_error
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:216,3'
          Dst:             match_error
    - functionName:    classend
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          128
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - match_error
      functionUses:    2
      BranchProfiles:
        - Branch String:   '/src/lwan/src/lib/patterns.c:98,2'
          Branch Sides:    []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:101,4'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:110,5'
          Dst:             match_error
    - functionName:    match_capture
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - check_capture
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:309,6'
          Dst:             check_capture
        - Src:             '/src/lwan/src/lib/patterns.c:314,6'
          Dst:             memcmp
    - functionName:    max_expand
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - match
        - singlematch
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:244,9'
          Dst:             singlematch
        - Src:             '/src/lwan/src/lib/patterns.c:248,21'
          Dst:             match
    - functionName:    push_captures
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - push_onecapture
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:538,7'
          Dst:             push_onecapture
    - functionName:    lmemfind
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - memchr
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:492,48'
          Dst:             memchr
        - Src:             '/src/lwan/src/lib/patterns.c:495,21'
          Dst:             memcmp
    - functionName:    nospecials
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
        - strpbrk
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:552,7'
          Dst:             strpbrk
        - Src:             '/src/lwan/src/lib/patterns.c:557,11'
          Dst:             strlen
    - functionName:    str_match_free
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_match
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 649
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          164
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - calloc
        - str_find_aux
        - str_match_free
        - strerror
        - strndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:660,8'
          Dst:             str_find_aux
        - Src:             '/src/lwan/src/lib/patterns.c:667,21'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/patterns.c:668,22'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/patterns.c:668,13'
          Dst:             strerror
        - Src:             '/src/lwan/src/lib/patterns.c:677,25'
          Dst:             strndup
        - Src:             '/src/lwan/src/lib/patterns.c:679,23'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/patterns.c:679,14'
          Dst:             strerror
        - Src:             '/src/lwan/src/lib/patterns.c:680,4'
          Dst:             str_match_free
    - functionName:    str_find_aux
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          293
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - lmemfind
        - match
        - match_error
        - nospecials
        - push_captures
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:568,16'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/patterns.c:569,16'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/patterns.c:578,10'
          Dst:             match_error
        - Src:             '/src/lwan/src/lib/patterns.c:581,6'
          Dst:             nospecials
        - Src:             '/src/lwan/src/lib/patterns.c:583,8'
          Dst:             lmemfind
        - Src:             '/src/lwan/src/lib/patterns.c:612,14'
          Dst:             match
        - Src:             '/src/lwan/src/lib/patterns.c:615,11'
          Dst:             push_captures
    - 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:    str_find
      functionSourceFile: '/src/lwan/src/lib/patterns.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 643
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_find_aux
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/patterns.c:635,8'
          Dst:             str_find_aux
    - functionName:    realpathat
      functionSourceFile: '/src/lwan/src/lib/realpathat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - realpathat2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/realpathat.c:203,12'
          Dst:             realpathat2
    - functionName:    realpathat2
      functionSourceFile: '/src/lwan/src/lib/realpathat.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         136
      ICount:          831
      EdgeCount:       182
      CyclomaticComplexity: 48
      functionsReached:
        - __assert_fail
        - __errno_location
        - fstat64
        - fstatat64
        - mempmove
        - readlinkat
        - realloc
        - realpath
        - strcpy
        - strdup
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/realpathat.c:52,9'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/realpathat.c:60,16'
          Dst:             realpath
        - Src:             '/src/lwan/src/lib/realpathat.c:63,13'
          Dst:             fstat64
        - Src:             '/src/lwan/src/lib/realpathat.c:66,20'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/realpathat.c:67,16'
          Dst:             strcpy
        - Src:             '/src/lwan/src/lib/realpathat.c:78,5'
          Dst:             strcpy
        - Src:             '/src/lwan/src/lib/realpathat.c:79,20'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/realpathat.c:112,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/realpathat.c:124,38'
          Dst:             realloc
        - Src:             '/src/lwan/src/lib/realpathat.c:133,20'
          Dst:             mempmove
        - Src:             '/src/lwan/src/lib/realpathat.c:137,21'
          Dst:             strncmp
        - Src:             '/src/lwan/src/lib/realpathat.c:145,17'
          Dst:             fstatat64
        - Src:             '/src/lwan/src/lib/realpathat.c:153,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/realpathat.c:157,26'
          Dst:             readlinkat
        - Src:             '/src/lwan/src/lib/realpathat.c:162,23'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/realpathat.c:164,21'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/realpathat.c:179,17'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/realpathat.c:189,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/realpathat.c:193,5'
          Dst:             __assert_fail
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mempmove
      functionSourceFile: '/src/lwan/src/lib/missing/string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sd_is_socket_internal
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          170
      EdgeCount:       42
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - fstat64
        - getsockopt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:240,13'
          Dst:             fstat64
        - Src:             '/src/lwan/src/lib/sd-daemon.c:241,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/sd-daemon.c:250,21'
          Dst:             getsockopt
        - Src:             '/src/lwan/src/lib/sd-daemon.c:251,33'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/sd-daemon.c:264,21'
          Dst:             getsockopt
        - Src:             '/src/lwan/src/lib/sd-daemon.c:265,33'
          Dst:             __errno_location
    - functionName:    sd_is_socket_inet
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          212
      EdgeCount:       49
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - getsockname
        - htons
        - sd_is_socket_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:291,13'
          Dst:             sd_is_socket_internal
        - Src:             '/src/lwan/src/lib/sd-daemon.c:295,13'
          Dst:             getsockname
        - Src:             '/src/lwan/src/lib/sd-daemon.c:296,25'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/sd-daemon.c:314,32'
          Dst:             htons
        - Src:             '/src/lwan/src/lib/sd-daemon.c:319,32'
          Dst:             htons
    - functionName:    strv_extend_n
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:123,14'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/sd-daemon.c:127,25'
          Dst:             strlen
        - Src:             '/src/lwan/src/lib/sd-daemon.c:128,24'
          Dst:             calloc
    - functionName:    strv_split
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          149
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - calloc
        - strchr
        - strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:142,22'
          Dst:             strdup
        - Src:             '/src/lwan/src/lib/sd-daemon.c:148,33'
          Dst:             strchr
        - Src:             '/src/lwan/src/lib/sd-daemon.c:156,14'
          Dst:             calloc
        - Src:             '/src/lwan/src/lib/sd-daemon.c:169,33'
          Dst:             strchr
    - functionName:    sd_listen_fds_with_names
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          131
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - getenv
        - sd_listen_fds
        - strv_extend_n
        - strv_split
        - unsetenv_listen_vars
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:189,24'
          Dst:             sd_listen_fds
        - Src:             '/src/lwan/src/lib/sd-daemon.c:191,13'
          Dst:             getenv
        - Src:             '/src/lwan/src/lib/sd-daemon.c:193,27'
          Dst:             strv_split
        - Src:             '/src/lwan/src/lib/sd-daemon.c:196,33'
          Dst:             unsetenv_listen_vars
        - Src:             '/src/lwan/src/lib/sd-daemon.c:205,17'
          Dst:             sd_listen_fds
        - Src:             '/src/lwan/src/lib/sd-daemon.c:217,21'
          Dst:             strv_extend_n
    - functionName:    sd_listen_fds
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          166
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - fcntl64
        - getenv
        - getpid
        - parse_int
        - unsetenv_listen_vars
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:49,13'
          Dst:             getenv
        - Src:             '/src/lwan/src/lib/sd-daemon.c:55,13'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/sd-daemon.c:62,13'
          Dst:             getpid
        - Src:             '/src/lwan/src/lib/sd-daemon.c:67,13'
          Dst:             getenv
        - Src:             '/src/lwan/src/lib/sd-daemon.c:73,13'
          Dst:             parse_int
        - Src:             '/src/lwan/src/lib/sd-daemon.c:88,25'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/sd-daemon.c:90,30'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/sd-daemon.c:97,21'
          Dst:             fcntl64
        - Src:             '/src/lwan/src/lib/sd-daemon.c:98,30'
          Dst:             __errno_location
        - Src:             '/src/lwan/src/lib/sd-daemon.c:107,17'
          Dst:             unsetenv_listen_vars
    - functionName:    getenv
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unsetenv_listen_vars
      functionSourceFile: '/src/lwan/src/lib/sd-daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unsetenv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sd-daemon.c:40,9'
          Dst:             unsetenv
        - Src:             '/src/lwan/src/lib/sd-daemon.c:41,9'
          Dst:             unsetenv
        - Src:             '/src/lwan/src/lib/sd-daemon.c:42,9'
          Dst:             unsetenv
    - functionName:    unsetenv
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __bswap_32
      functionSourceFile: '/usr/include/x86_64-linux-gnu/bits/byteswap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sha1_finalize
      functionSourceFile: '/src/lwan/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          118
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - sha1_update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sha1.c:152,5'
          Dst:             sha1_update
        - Src:             '/src/lwan/src/lib/sha1.c:155,9'
          Dst:             sha1_update
        - Src:             '/src/lwan/src/lib/sha1.c:157,5'
          Dst:             sha1_update
    - functionName:    sha1_update
      functionSourceFile: '/src/lwan/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          128
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - sha1_transform
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sha1.c:124,9'
          Dst:             sha1_transform
        - Src:             '/src/lwan/src/lib/sha1.c:127,13'
          Dst:             sha1_transform
    - functionName:    sha1_transform
      functionSourceFile: '/src/lwan/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          755
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - __bswap_32
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/sha1.c:66,9'
          Dst:             __bswap_32
    - functionName:    sha1_init
      functionSourceFile: '/src/lwan/src/lib/sha1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          34
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_add_tail
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:326,8'
          Dst:             list_check
    - functionName:    timeout_slot
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_wheel
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeout_rem
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_del
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check_node
        - list_poison_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:360,8'
          Dst:             list_check_node
        - Src:             '/src/lwan/src/lib/list.h:365,2'
          Dst:             list_poison_node
    - functionName:    list_top_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:434,6'
          Dst:             list_empty
    - functionName:    list_empty
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:340,8'
          Dst:             list_check
    - functionName:    timeouts_get
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_del_from
        - list_top_
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:402,26'
          Dst:             list_top_
        - Src:             '/src/lwan/src/lib/timeout.c:407,5'
          Dst:             list_del_from
    - functionName:    list_del_from
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - list_del
        - list_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:389,4'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/list.h:396,2'
          Dst:             list_empty
        - Src:             '/src/lwan/src/lib/list.h:396,2'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/list.h:397,2'
          Dst:             list_del
    - functionName:    timeouts_int
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          127
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - rotr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:370,36'
          Dst:             rotr
    - functionName:    rotr
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:129,5'
          Dst:             __assert_fail
    - functionName:    timeouts_timeout
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_empty
        - timeouts_int
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:394,10'
          Dst:             list_empty
        - Src:             '/src/lwan/src/lib/timeout.c:397,12'
          Dst:             timeouts_int
    - functionName:    list_node_from_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_node_to_off_
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_append_list
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_check
        - list_del
        - list_head_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/list.h:564,32'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/list.h:565,30'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/list.h:574,2'
          Dst:             list_del
        - Src:             '/src/lwan/src/lib/list.h:575,2'
          Dst:             list_head_init
    - functionName:    list_head_init
      functionSourceFile: '/src/lwan/src/lib/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rotl
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:123,5'
          Dst:             __assert_fail
    - functionName:    timeouts_update
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          253
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - list_append_list
        - list_check
        - list_del_from
        - list_head_init
        - list_node_from_off_
        - list_node_to_off_
        - rotl
        - rotr
        - timeouts_sched
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:265,5'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/timeout.c:302,23'
          Dst:             rotl
        - Src:             '/src/lwan/src/lib/timeout.c:306,29'
          Dst:             rotl
        - Src:             '/src/lwan/src/lib/timeout.c:306,24'
          Dst:             rotr
        - Src:             '/src/lwan/src/lib/timeout.c:314,13'
          Dst:             list_append_list
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_check
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_node_to_off_
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/timeout.c:329,9'
          Dst:             list_del_from
        - Src:             '/src/lwan/src/lib/timeout.c:332,9'
          Dst:             timeouts_sched
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_node_from_off_
        - Src:             '/src/lwan/src/lib/timeout.c:328,5'
          Dst:             list_node_to_off_
    - functionName:    timeouts_sched
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          88
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_add_tail
        - timeout_rem
        - timeout_slot
        - timeout_wheel
        - timeouts_del
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:226,5'
          Dst:             timeouts_del
        - Src:             '/src/lwan/src/lib/timeout.c:231,15'
          Dst:             timeout_rem
        - Src:             '/src/lwan/src/lib/timeout.c:238,17'
          Dst:             timeout_wheel
        - Src:             '/src/lwan/src/lib/timeout.c:239,16'
          Dst:             timeout_slot
        - Src:             '/src/lwan/src/lib/timeout.c:248,5'
          Dst:             list_add_tail
    - functionName:    timeouts_del
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - list_del_from
        - list_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:190,9'
          Dst:             list_del_from
        - Src:             '/src/lwan/src/lib/timeout.c:192,43'
          Dst:             list_empty
    - functionName:    timeouts_add
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - timeouts_sched
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:254,9'
          Dst:             timeouts_sched
        - Src:             '/src/lwan/src/lib/timeout.c:256,9'
          Dst:             timeouts_sched
    - functionName:    timeouts_close
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeouts_init
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - list_head_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:155,13'
          Dst:             list_head_init
        - Src:             '/src/lwan/src/lib/timeout.c:159,5'
          Dst:             list_head_init
    - functionName:    lwan_aligned_alloc
      functionSourceFile: '/src/lwan/src/lib/lwan-private.h'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - posix_memalign
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/lwan-private.h:289,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-private.h:290,5'
          Dst:             __assert_fail
        - Src:             '/src/lwan/src/lib/lwan-private.h:293,9'
          Dst:             posix_memalign
    - functionName:    timeouts_open
      functionSourceFile: '/src/lwan/src/lib/timeout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - lwan_aligned_alloc
        - timeouts_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/src/lwan/src/lib/timeout.c:174,14'
          Dst:             lwan_aligned_alloc
        - Src:             '/src/lwan/src/lib/timeout.c:175,16'
          Dst:             timeouts_init
        - Src:             '/src/lwan/src/lib/timeout.c:177,14'
          Dst:             __errno_location
...
